您的位置:首页 > 其它

设计模式学习笔记之简单工厂模式

2012-08-02 09:42 387 查看
所谓简单工厂模式,即提供创建对象的接口,而具体创建什么对象,由客户端决定。

比如,我们有IBird这样一个抽象类,有Chicken和Duck这两个类实现IBird。那么,如果我们想灵活的创建Chicken或IBird,那么就需要用到简单工厂模式。

SimpleFactory根据接收到的字符串,决定返回的对象。客户端用父类引用接收子类对象,不需要判别其差别,即可以得到想用的对象。

如下,是这4个类的类图:



首先定义一个IBird抽象类:

public abstract class IBird {
public void describe(){}
}

然后定义Chicken类继承至IBird:

public class Chicken extends IBird{

public void describe() {

System.out.println("I'm a chicken.");
}
}

定义Duck继承至IBird:

public class Duck extends IBird{

public void describe() {

System.out.println("I'm a duck.");
}
}

然后定义一个简单工厂类:

public class SimpleFactory {

public static  IBird getBird(String name){

if(name.equals("chicken")){

return new Chicken();
}else if(name.equals("duck")){

return new Duck();
}

return null;
}
}

最后用一个类对简单工厂进行测试:

public class TestSimpleFactory {

public static void main(String[] args){

IBird bird1 = SimpleFactory.getBird("chicken");
bird1.describe();

IBird bird2 = SimpleFactory.getBird("duck");
bird2.describe();
}
}

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息