设计模式-抽象工厂
来源:互联网 发布:无间道 港片 知乎 编辑:程序博客网 时间:2024/05/17 06:54
//抽象产品类Apublic abstract class AbstractProductA { //每个产品共有方法 public void commonMethod(){} //每个产品相同方法,不同实现 public abstract void doSomething();}
//等级为1的产品A的实现类public class ProductA1 extends AbstractProductA{ public void doSomething(){ System.out.println("产品A1的实现方法"); }}
//等级为2的产品A的实现类public class ProductA2 extends AbstractProductA{ public void doSomething(){ System.out.println("产品A2的实现方法"); }}
//抽象产品类Bpublic abstract class AbstractProductB { //每个产品共有方法 public void commonMethod(){} //每个产品相同方法,不同实现 public abstract void doSomething();}
//等级为1的产品B的实现类public class ProductB1 extends AbstractProductB{ public void doSomething(){ System.out.println("产品B1的实现方法"); }}
//等级为2的产品B的实现类public class ProductB2 extends AbstractProductB{ public void doSomething(){ System.out.println("产品B2的实现方法"); }}
//抽象工厂public abstract class AbstractFactory { //创建A产品家族 public abstract AbstractProductA createProductA(); //创建B产品家族 public abstract AbstractProductB createProductB();}
//具体工厂类1public class Factory1 extends AbstractFactory{ //只生产等级为1的A产品 public AbstractProductA createProductA() { return new ProductA1(); } //只生产等级为1的B产品 public AbstractProductB createProductB() { return new ProductB1(); }}
//具体工厂类2public class Factory2 extends AbstractFactory{ //只生产等级为2的A产品 public AbstractProductA createProductA() { return new ProductA2(); } //只生产等级为2的B产品 public AbstractProductB createProductB() { return new ProductB2(); }}
public class Main { public static void main(String[] args) { //不同工厂 AbstractFactory factory1 = new Factory1(); AbstractFactory factory2 = new Factory2(); //产品A AbstractProductA a1 = factory1.createProductA(); AbstractProductA a2 = factory2.createProductA(); //产品B AbstractProductB b1 = factory1.createProductB(); AbstractProductB b2 = factory2.createProductB(); }}
有M个产品等级就应该有M个工厂类,每个实现工厂负责不同产品族的生产。
阅读全文
0 0
- 设计模式-抽象工厂
- 设计模式笔记-抽象工厂模式
- 设计模式笔记-抽象工厂模式
- 设计模式笔记-抽象工厂模式
- 设计模式-抽象工厂模式
- 设计模式-抽象工厂模式(AbstractFactoryPattern)
- 抽象工厂设计模式
- 设计模式-----抽象工厂
- 抽象工厂设计模式
- 抽象工厂设计模式
- 抽象工厂设计模式
- 设计模式 抽象工厂
- 设计模式--抽象工厂
- 设计模式--抽象工厂
- 设计模式 抽象工厂
- 设计模式-抽象工厂
- 设计模式-> 抽象工厂
- 抽象工厂设计模式
- mybatis批量插入报错:','附近有错误
- python+django+sae(3)
- 程序员薪酬到底有多高?来看硅谷的工程师统计
- 程序员为什么都穿得那么丑
- URAL 1099 Work Scheduling(带花树)
- 设计模式-抽象工厂
- EasyDemo*JavaSE 基础知识点体系结构图(download pic Thx)
- StringUtils的isBlank与isEmply
- python正则表达式
- POJ 1161 The Suspects 并查集
- Linux USB 摄像头驱动
- bootstrap------3------
- GitHub 上 11 月份最热门的开源项目
- mysql之TIMESTAMP(时间戳)用法详解