当前位置:首页 > 设计模式之创建类模式 - 工厂方法模式
通用代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** * 抽象产品类 * @author Administrator * */ public abstract class Product { // 产品类的公共方法 public void method1() { // 业务处理逻辑 } // 抽象方法 public abstract void method2(); } 1 2 3 4 5 6 7 8 /** * 具体产品类1 * @author Administrator * */ public class ConcreteProduct1 extends Product { @Override 9 10 11 12 13 public void method2() { // 业务逻辑处理 } } 1 2 3 4 5 6 7 8 9 10 11 12 13 /** * 具体产品类2 * @author Administrator * */ public class ConcreteProduct2 extends Product { @Override public void method2() { // 业务逻辑处理 } } 1 /** 2 * 简单工厂模式中的工厂类 3 * @author Administrator 4 * 5 */ 6 public class SimpleFactory { 7 8 public static
? 升级为多个工厂类
多工厂模式中,每一个产品类都对应一个创建类,好处就是创建类的职责清晰,而且结构简单,但是给可扩展性和可维护性带来了一定的影响。为什么这么说呢?如果要扩展一个产品类,就需要建立一个相应的工厂类,这样就增加了扩展的难度。因为工厂类和产品类的数量相同,维护时需要考虑两个对象之间的关系。
当然,在复杂的应用中一般采用多工厂的方法,然后在增加一个协调类,避免调用者与各个子工厂交流,协调类的作用是封装子工厂类,对高层模块提供统一的访问接口。 类图:
通用代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 /** * 抽象产品类 * @author Administrator * */ public abstract class Product { // 产品类的公共方法 public void method1() { // 业务处理逻辑 } // 抽象方法 public abstract void method2(); } 1 2 3 4 5 6 7 8 9 10 11 12 /** * 具体产品类1 * @author Administrator * */ public class ConcreteProduct1 extends Product { @Override public void method2() { // 业务逻辑处理 }
共分享92篇相关文档