抽象工厂模式
来源:互联网 发布:网上电商系统java 编辑:程序博客网 时间:2024/06/06 13:58
为创建一组相关或相互依赖的对象提供一个接口, 而无须指定它们的具体类
/** * * 为创建一组相关或相互依赖的对象提供一个接口, * 而无须指定它们的具体类 * 一组对象之间存在相关或相互依赖的关系 * 此处声明A组产品 */public abstract class AbstractProductA {//每个产品通用的方法public void commonMethod(){}//每个产品相同方法, 不同实现public abstract void doSomething();}
/** * * 为创建一组相关或相互依赖的对象提供一个接口, * 而无须指定它们的具体类 * 一组对象之间存在相关或相互依赖的关系 * 此处声明B组产品 */public abstract class AbstractProductB {//每个产品通用的方法public void commonMethod(){}//每个产品相同方法, 不同实现public abstract void doSomething();}
public class ProductA1 extends AbstractProductA{public void doSomething(){System.out.println("Belong to ProductA1");}}
public class ProductA2 extends AbstractProductA{public void doSomething(){System.out.println("Belong to ProductA2");}}
public class ProductB1 extends AbstractProductB{public void doSomething(){System.out.println("Belong to ProductB1");}}
public class ProductB2 extends AbstractProductB{public void doSomething(){System.out.println("Belong to ProductB2");}}
public abstract class AbstractCreator {//创建A产品家族public abstract AbstractProductA createProductA();//创建B产品家族public abstract AbstractProductB createProductB();}
public class Creator1 extends AbstractCreator {//创建等级为1的A产品@Overridepublic AbstractProductA createProductA() {// TODO Auto-generated method stubreturn new ProductA1();}//创建 等级为1的B产品@Overridepublic AbstractProductB createProductB() {// TODO Auto-generated method stubreturn new ProductB1();}}
//有M个产品等级,就应该有M个实现工厂类//在每个实现工厂中,实现不同产品族的生产任务public class Creator2 extends AbstractCreator {//创建等级为2的A产品@Overridepublic AbstractProductA createProductA() {// TODO Auto-generated method stubreturn new ProductA2();}//创建 等级为2的B产品@Overridepublic AbstractProductB createProductB() {// TODO Auto-generated method stubreturn new ProductB2();}}
public class Client {public static void main(String[] args) {// TODO Auto-generated method stub//定义出两个工厂AbstractCreator creator1 = new Creator1();AbstractCreator creator2 = new Creator2();//生产等级为1的产品AbstractProductA a1 = creator1.createProductA();AbstractProductB b1 = creator1.createProductB();//生产等级为2的产品AbstractProductA a2 = creator2.createProductA();AbstractProductB b2 = creator2.createProductB();}}
0 0
- 工厂模式 -- 抽象工厂
- 工厂模式-抽象工厂
- 工厂模式-抽象工厂
- 工厂模式/抽象工厂模式
- 工厂模式&&抽象工厂模式
- 工厂模式---抽象工厂模式
- 工厂模式&抽象工厂模式
- 工厂模式,抽象工厂模式
- 【模式】抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂、工厂模式、抽象工厂模式
- 简单工厂&工厂模式&抽象工厂模式
- 工厂方法,抽象工厂模式
- 2,工厂模式--抽象工厂
- C#工厂模式-抽象工厂
- 工厂模式与抽象工厂
- 抽象工厂设计模式
- 抽象工厂模式
- 虚拟机介绍二
- hdu 5833 Zhu and 772002(高斯消元)
- 算数运算符
- 悲观锁解决高并发访问问题
- 2016.8.14GDOI组模拟总结
- 抽象工厂模式
- java使用ini配置文件
- volatile关键字
- 算术表达式的转换
- SVN各种图标含义
- 运算符操作数与结合性
- 记录重装系统+安装python IDE +各种python依赖过程
- 内部类
- 动态规划:正整数分组