关于工厂模式,没什么好说的,实在太常见了。不过作为设计模式的完整性,还是将它写出来来。
以前我们创建一个对象时通常是采用new的方式,如
这样进行实例创建的一个结果是,当Product子类越来越多的时候,这样就需要修改new代码。这样是很麻烦的。一个解决的方法就是使用一个对象来管理这些对象的创建。这个用来创建对象的便是Factory。
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。(G4)
下面来看看具体的实现代码吧。
工厂
这样,我们创建对象的时候就不需要使用new了。
以前我们创建一个对象时通常是采用new的方式,如
java 代码
- Product proa = new ProductA();
- Product prob = new ProductB();
这样进行实例创建的一个结果是,当Product子类越来越多的时候,这样就需要修改new代码。这样是很麻烦的。一个解决的方法就是使用一个对象来管理这些对象的创建。这个用来创建对象的便是Factory。
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。(G4)
下面来看看具体的实现代码吧。
java 代码
- // 工厂方法所创建的对象的接口
- public interface Product {
- ......
- }
java 代码
- // 产品A
- public class ProductA implements Product {
- ......
- }
- // 产品B
- public class ProductB implements Product {
- ......
- }
工厂
java 代码
- // 工厂,用于创建具体的Product
- public class Factory {
- //创建Product
- public static Product createProduct (String product) {
- if( product.equals("A") )
- return new ProductA();
- else if ( product.equals("B") )
- return new ProductB();
- else
- ......
- }
- }
这样,我们创建对象的时候就不需要使用new了。
java 代码
- Product proa = Factory.createProduct("A");
- Product prob = Factory.createProduct("B");