设计模式学习笔记之简单工厂模式
2012-08-02 09:42
387 查看
所谓简单工厂模式,即提供创建对象的接口,而具体创建什么对象,由客户端决定。
比如,我们有IBird这样一个抽象类,有Chicken和Duck这两个类实现IBird。那么,如果我们想灵活的创建Chicken或IBird,那么就需要用到简单工厂模式。
SimpleFactory根据接收到的字符串,决定返回的对象。客户端用父类引用接收子类对象,不需要判别其差别,即可以得到想用的对象。
如下,是这4个类的类图:
首先定义一个IBird抽象类:
然后定义Chicken类继承至IBird:
定义Duck继承至IBird:
然后定义一个简单工厂类:
最后用一个类对简单工厂进行测试:
比如,我们有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(); } }
相关文章推荐
- 设计模式学习笔记——简单工厂模式、工厂方法模式、抽象工厂模式
- 设计模式---简单工厂模式(学习笔记)
- Android设计模式学习笔记(简单工厂模式)
- 设计模式学习笔记——简单工厂模式
- 设计模式学习笔记——简单工厂模式
- 设计模式学习笔记 简单工厂模式
- C#设计模式学习笔记(一) 之 简单工厂模式
- 设计模式学习笔记--简单工厂模式(Simple Factory Pattern)【创建型模式】
- 设计模式---简单工厂模式(学习笔记)
- 设计模式学习笔记--简单工厂模式
- 【设计模式】学习笔记——简单工厂模式
- 设计模式学习笔记(1)——简单工厂模式
- 【设计模式】简单工厂模式学习笔记
- 设计模式学习笔记(Java篇)之简单工厂模式
- 设计模式学习笔记(2)——简单工厂模式
- 【设计模式】学习笔记之简单工厂模式
- 设计模式学习笔记-简单工厂模式
- Java学习笔记---设计模式之简单工厂模式
- 设计模式学习笔记--简单工厂模式
- 设计模式学习笔记一【简单工厂模式】