设计模式-工厂方法模式
|Word count:233|Reading time:1min|Post View:
设计模式-工厂方法模式

定义一个创建对象的接口,但是由子类决定要实例化那个类,工厂方法把实例化推迟到子类,主要解决接口选择的问题
实例:java.util.Collection 接口的 iterator 方法,hibernate里通过sessionFactory创建session,
日志记录器:记录可能记录到本地硬盘、系统事件、远程服务器等,用户可以选择记录日志到什么地方。
数据库访问,当用户不知道最后系统采用哪一类数据库,以及数据库可能有变化时
在简单工厂中,创建对象的是另一个类,而在工厂方法中,是由子类来创建对象
1 2 3 4 5 6 7 8
| public abstract class Factory { public abstract Product factoryMethod(); public void doSomething(){ Product product = factoryMethod(); } }
|
1 2 3 4 5 6 7 8 9
|
public class ConcreteFactory extends Factory { @Override public Product factoryMethod() { return new ConcreteProduct(); } }
|
1 2 3 4 5 6
| public class ConcreteFactory2 extends Factory { @Override public Product factoryMethod() { return new ConcreteProduct2(); } }
|