Java设计模式(六):工厂方法模式

工厂方法模式(factory method pattern)

工厂方法模式(factory method pattern):属于对象的创建型模式。定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。


工厂方法模式UML图

Java设计模式(六):工厂方法模式

Java


工厂方法模式涉及的角色

抽象角色:工厂方法模式所创建的对象的超类。如图中 Operation。具体角色:具体角色,实现具体角色。如图中 OperationAdd、OperationSub、OperationMul、OperationDiv。抽象工厂角色 :这个角色的是工厂方法模式的核心,任何在模式中创建对象的工厂类必须实现这个接口。如图中 Ifactory。具体工厂角色 :抽象工厂接口的具体实现,含有与业务密切相关的逻辑,并且受到使用者的调用以创建导出类。如图中 AddFactory、SubFactory、MulFactory、DivFactory。


示例代码

运算类 OperationFactory

Java设计模式(六):工厂方法模式

Java

运算抽象类 AbstractOperation

Java设计模式(六):工厂方法模式

Java

加法运算类 OperationAdd

Java设计模式(六):工厂方法模式

Java

减法运算类 OperationSub

Java设计模式(六):工厂方法模式

Java

乘法运算类 OperationMul

Java设计模式(六):工厂方法模式

Java

除法运算类 OperationDiv

Java设计模式(六):工厂方法模式

Java

工厂接口类 IFactory

Java设计模式(六):工厂方法模式

Java

加法工厂类 AddFactory

Java设计模式(六):工厂方法模式

Java

减法工厂类 SubFactory

Java设计模式(六):工厂方法模式

Java

乘法工厂类 MulFactory

Java设计模式(六):工厂方法模式

Java

除法工厂类 DivFactory

Java设计模式(六):工厂方法模式

Java

客户端测试类 FactoryMethodTest

Java设计模式(六):工厂方法模式

Java


工厂方法模式与简单工厂模式比较

工厂方法模式克服了简单工厂模式违背的开放-封闭原则的缺点,它是简单工厂模式的进一步抽象和广,从而降低了客户端与产品的耦合,增加对应计算类的抽象工厂这样就把简单工厂的内部逻辑判断转移到了客户端代码类来进行。本来是改工厂类,而现在是修改客户端。

以上所述是小编给大家介绍的工厂方法模式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的!

Java学习资料(复制下段链接至浏览器即可)

data:textml;charset=UTF-8;base64,5oGt5Zac5L2g77yM5p625p6E5biI5a2m5Lmg576k5Y+35pivNjg2NTc5MDE0Cg==

Java设计模式(六):工厂方法模式

Java

每晚8:00烛光学院的讲师将会在腾讯课堂烛光学院Java高级免费试听课程中
给大家详细讲解

Java学习资料获取或免费进入课堂权限获取(复制下段连接至浏览器即可)
data:text/html;charset=UTF-8;base64,5p625p6E5biI5a2m5Lmg6LWE5paZ5YWN6LS56aKG5Y+W6K+35Yqg5omj5omj5Y+35pivMTAxODkyNTc4MA==

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章