《设计模式 系列》- 创建型模式 - 抽象工厂
2017-12-21 00:00
302 查看
前言
本文包含几部分:1.UML图
2.实现代码
3.模式分析
一、UML图
二、实现代码
产品ProductApublic interface ProductA { public void printProduct(); } public class ConcreteProductA1 implements ProductA { @Override public void printProduct() { System.out.println("This is ConcreteProductA1"); } } public class ConcreteProductA2 implements ProductA { @Override public void printProduct() { System.out.println("This is ConcreteProductA2"); } }
产品ProductB
public interface ProductB { public void printProduct(); } public class ConcreteProductB1 implements ProductB { @Override public void printProduct() { System.out.println("This is ConcreteProductB1"); } } public class ConcreteProductB2 implements ProductB { @Override public void printProduct() { System.out.println("This is ConcreteProductB2"); } }
工厂类
public interface Factory { public ProductA createProductA(); public ProductB createProductB(); } public class ConcreteFactoryA implements Factory { @Override public ProductA createProductA() { ProductA product = new ConcreteProductA1(); return product; } @Override public ProductB createProductB() { ProductB product = new ConcreteProductB1(); return product; } } public class ConcreteFactoryB implements Factory { @Override public ProductA createProductA() { ProductA product = new ConcreteProductA2(); return product; } @Override public ProductB createProductB() { ProductB product = new ConcreteProductB2(); return product; } }
调用代码
public class Client { public static void main(String[] args) { Factory factory = new ConcreteFactoryA(); ProductA productA = factory.createProductA(); ProductB productB = factory.createProductB(); productA.printProduct(); productB.printProduct(); factory = new ConcreteFactoryB(); productA = factory.createProductA(); productB = factory.createProductB(); productA.printProduct(); productB.printProduct(); } }
三、模式分析
如果增加产品的话,只要增加一个产品实现类,一个工厂实现类,原来的代码不需要做任何修改。相关文章推荐
- 《设计模式 系列》- 创建型模式 - 工厂方法
- 设计模式系列10---高度定制的抽象工厂方法模式
- ABSTRACT FACTORY抽象工厂 - 对象创建型模式(四)
- 设计模式(一)工厂模式Factory(创建型)
- [Java] 设计模式之工厂系列 02-面向抽象编程 抽象工厂 - 缺点 : 产生新的产品品种的时候,改动太多
- 创建型模式之抽象工厂
- 设计模式系列(三)工厂模式
- 【转】设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- 设计模式二:abstract factory 抽象工厂——对象创建型模式
- 二十三种设计模式之创建型模式之抽象工厂
- 【设计模式系列】--抽象工厂
- 创建型模式-抽象工厂 Creational Patterns -Abstract Factory
- 【23种设计模式】创建型模式 > 三个工厂模式(简单工厂、抽象工厂、工厂方法)
- 设计模式系列之工厂模式
- 设计模式笔记--创建型模式之一 抽象工厂
- 从FLC中学习的设计模式系列-创建型模式(3)-工厂方法
- 设计模式——创建型设计模式总结(简单工厂、普通工厂、抽象工厂、建造者、原型和单例)
- 设计模式-创建型模式-抽象工厂
- 设计模式系列课程10之【工厂模式】