抽象工厂模式
来源:互联网 发布:河南seo技术培训 编辑:程序博客网 时间:2024/06/05 10:12
1类图
2定义
为创建一组相关或者是相互依赖的对象提供一个接口,而不需要指定他们的具体类。
3应用场景
3.1一个对象有相同的约束时可以使用。
3.2例如组装汽车轮胎有普通和越野,发动机有国产和进口就可以使用抽象工厂模式。汽车定义为抽象工厂类,轮胎类为一个抽象产品类,有具体的普通轮胎产品类和越野轮胎产品类等,具体工厂1类内有普通轮胎的实现和国产发动机的实现。具体工厂类2有越野轮胎的实现和进口发动机的实现。
4抽象产品类A
public abstract class AbstractProductA { public abstract void method();}
5抽象产品类B
public abstract class AbstractProductB { public abstract void method();}
6具体产品类A1
public class ConcreteProductA1 extends AbstractProductA { @Override public void method() { // TODO Auto-generated method stub System.out.println("A1"); }}
7具体产品类A2
public class ConcernProductA2 extends AbstractProductA { @Override public void method() { // TODO Auto-generated method stub System.out.println("A2"); }}
8具体产品类B1
public class ConcreteProductB1 extends AbstractProductB { @Override public void method() { // TODO Auto-generated method stub System.out.println("B1"); }}
9具体产品类B2
public class ConcernProductB2 extends AbstractProductB { @Override public void method() { // TODO Auto-generated method stub System.out.println("B2"); }}
10抽象工厂类
public abstract class AbstractFactory { public abstract AbstractProductA createProductA(); public abstract AbstractProductB createProductB();}
11具体工厂类1
public class ConcernFactory1 extends AbstractFactory { @Override public AbstractProductA createProductA() { // TODO Auto-generated method stub return new ConcreteProductA1(); } @Override public AbstractProductB createProductB() { // TODO Auto-generated method stub return new ConcreteProductB1(); }}
12具体工厂类2
public class ConcernFactory2 extends AbstractFactory { @Override public AbstractProductA createProductA() { // TODO Auto-generated method stub return new ConcernProductA2(); } @Override public AbstractProductB createProductB() { // TODO Auto-generated method stub return new ConcernProductB2(); }}
13测试类
public class test { public static void main(String[] args) { ConcernFactory1 c1 = new ConcernFactory1(); c1.createProductA().method(); c1.createProductB().method(); }}
阅读全文
0 0
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C#工厂模式-抽象工厂
- 工厂模式与抽象工厂
- 抽象工厂设计模式
- 抽象工厂模式
- 简单 12 步理解 Python 装饰器
- MYSQL_ASSOC
- MySQL基本数据类型
- KMP学习
- Qt之浅析状态机QState
- 抽象工厂模式
- ubuntu主机初始化
- Construct制作中玩家不能移动?
- #长连接#WebSocket\长连接\轮询
- 从传统工控软件角度对百度天工平台解读
- theano 安装解决方案
- 【LeetCode】C# 21、Merge Two Sorted Lists
- 1047. 编程团体赛(20)
- 虚幻4调试模式和关于虚幻引擎4.18和4.19源码版,无法使用DebuggameEditor调试模式的解决方法。