一、概念 提供一个创建一系列相关或相互依赖对像的接口,而无需指定它们具体的类。二、模式动机 这一系列对像之间是相互依赖的,相当于一个产品族 三、模式的结构通过上图我们可以清楚的看到抽像工厂模式包括以下4个角色:
一、概念
提供一个创建一系列相关或相互依赖对像的接口,而无需指定它们具体的类。
二、模式动机
这一系列对像之间是相互依赖的,相当于一个产品族
三、模式的结构
通过上图我们可以清楚的看到抽像工厂模式包括以下4个角色:
1.抽像工厂角色(AbstractFactory):抽像工厂模式的核心,与具体的商业逻辑无关,通常是一个JAVA接口或者抽像类。
2.具体工厂角色(Concrete Factory):该角色通常与具体的商业逻辑紧密相关,该角色里面的工厂方法依据具体的商业逻辑实例化具体的产品并返回,客户端通过该角色并调用该角色的工厂方法,获得具体产品对像,该角色通常都是一个具体JAVA类来承担。
3.抽像产品角色:担任这个角色的类是工厂方法模式所创建的产品的父类,或者他们共同拥有的接口,通常是一个接口或者抽像类。
4.具体产品角色:抽像工厂模式所创建的任何产品都是这个角色的实例,有一个具体JAVA类来承担。
样例代码如下:
public class AbstractProductA { public AbstractProductA() { }}public class ProductA1 extends AbstractProductA { public ProductA1() { }}public class ProductA2 extends AbstractProductA { public ProductA2() { }}public class AbstractProductB { public AbstractProductB() { }}public class ProductB1 extends AbstractProductB { public ProductB1() { }}public class ProductB2 extends AbstractProductB { public ProductB2() { }}public abstract class AbstractFactory { public AbstractFactory() { } public Abstract AbstractProductA createProductA() ; public Abstract AbstractProductB createProductB() ;}public class ConcreteFactory1 extends AbstractFactory { public ConcreteFactory1() { } public AbstractProductA createProductA() { return new ProductA1(); } public AbstractProductB createProductB() { return new ProductB1(); }}public class ConcreteFactory2 extends AbstractFactory { public ConcreteFactory2() { } public AbstractProductA createProductA() { return new ProductA2(); } public AbstractProductB createProductB() { return new ProductB2(); }}
--结束END--
本文标题: java设计模式之抽像工厂详解
本文链接: https://lsjlt.com/news/223337.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0