工厂方法模式(factory method pattern)
工厂方法模式(factory method pattern):属于对象的创建型模式。定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。
工厂方法模式是类的创建模式,又叫做虚拟构造子(Virtual Constructor)模式或者多态性工厂(Polymorphic Factory)模式。
工厂方法模式UML图
工厂方法模式涉及的角色
抽象角色:工厂方法模式所创建的对象的超类。如图中 Operation。具体角色:具体角色,实现具体角色。如图中 OperationAdd、OperationSub、OperationMul、OperationDiv。抽象工厂角色 :这个角色的是工厂方法模式的核心,任何在模式中创建对象的工厂类必须实现这个接口。如图中 Ifactory。具体工厂角色 :抽象工厂接口的具体实现,含有与业务密切相关的逻辑,并且受到使用者的调用以创建导出类。如图中 AddFactory、SubFactory、MulFactory、DivFactory。
示例代码
运算类 OperationFactory
运算抽象类 AbstractOperation
加法运算类 OperationAdd
减法运算类 OperationSub
乘法运算类 OperationMul
除法运算类 OperationDiv
工厂接口类 IFactory
加法工厂类 AddFactory
减法工厂类 SubFactory
乘法工厂类 MulFactory
除法工厂类 DivFactory
客户端测试类 FactoryMethodTest
工厂方法模式与简单工厂模式比较
工厂方法模式克服了简单工厂模式违背的开放-封闭原则的缺点,它是简单工厂模式的进一步抽象和广,从而降低了客户端与产品的耦合,增加对应计算类的抽象工厂这样就把简单工厂的内部逻辑判断转移到了客户端代码类来进行。本来是改工厂类,而现在是修改客户端。
以上所述是小编给大家介绍的工厂方法模式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的!
Java学习资料(复制下段链接至浏览器即可)
data:textml;charset=UTF-8;base64,5oGt5Zac5L2g77yM5p625p6E5biI5a2m5Lmg576k5Y+35pivNjg2NTc5MDE0Cg==