05-工厂方法模式
2023-09-30 15:58:08 0 举报
设计模式,工厂方法模式,设计模式UML类图,GOF23种设计模式
作者其他创作
大纲/内容
<<接口>>Product
CashRebate
+ acceptCash():Double
ConcreteCreatorB
+factoryMethod()
基础运算工厂
+createSalesModel():ISale
乘法类
ConcreteProduct2
高级运算工厂
+createOperate()
对数运算类
减法类
CashNormal
CashSuper
工厂方法模式克服了简单工厂违背开闭原则的缺点,又保持了封装对象创建过程的优点。降低了客户端与产品对象的耦合。工厂方法模式是简单工厂模式的进一步抽象和推广。工厂方法模式本质就是对获取对象过程的抽象。优点:1、对于复杂的参数构造对象,可以很好地对外层屏蔽代码的复杂性。2、很好的解耦能力。
定义工厂方法所创建对象的接口
除法类
简单工厂+策略模式+装饰模式+工厂方法
加法类
ConcreteProduct1
CashReturn
ConcreteProduct3
<<接口>>Creator
重定义工厂方法以返回一个ConcreteProduct的实例
工厂方法模式(Factory Method)结构图
指数运算类
工厂方法中新的OperationFactory类已经不存在运算子类实例化的代码了。也就是说,这个代码里,全部是接口与具体工厂类,并不存在具体的实现,与原来简单工厂中的OperationFactory类对比,实例化过程延迟到了工厂子类中。当然新的OperationFactory依然存在\"坏味道\",当增加新的运算子类时,它本身也是需要更改的,这个先放一边,以后可以解决(抽象工厂、反射)。
运算类
+ getResult() : double
ConcreteProduct4
<<接口>>ISale
运算类应用工厂方法模式
具体的产品,实现Product接口
工厂方法模式(Factory Method),定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
<<接口>>IFactory
<<接口>>运算工厂
声明工厂方法,该方法返回一个Product类型的对象
ConcreteCreatorA
0 条评论
下一页