抽象工厂——对象创建型模式
来源:互联网 发布:java哪些字符需要转义 编辑:程序博客网 时间:2024/06/05 20:55
一、意图
提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们具体的类。
二、适用性
在以下情况可以使用Abstract Factory模式
- 一个系统要独立于它的产品的创建,组合和表示时。
- 一个系统要由多个产品系列中的一个来配置时。
- 当你要强调一系列相关的产品对象的设计以便进行联合使用时。
- 当你提供一个产品类库,而只想显示它们的接口而不是实现时。
三、结构
四、代码示例
抽象工厂
public abstract class AbstractFactory { public abstract AbstractProductA createProductA(); public abstract AbstractProductB createProductB();}
具体工厂
public class ConcreteFactory1 extends AbstractFactory{ @Override public AbstractProductA createProductA() { return new ProductA1(); } @Override public AbstractProductB createProductB() { return new ProductB1(); }}
public class ConcreteFactory2 extends AbstractFactory{ @Override public AbstractProductA createProductA() { return new ProductA2(); } @Override public AbstractProductB createProductB() { return new ProductB2(); }}
抽象产品
public class AbstractProductA {}
public class AbstractProductB {}
具体产品
public class ProductA1 extends AbstractProductA {}
public class ProductA2 extends AbstractProductA {}
使用
public class Client { public static void main(String[] args){ //获得 "1" 工厂 AbstractFactory factory = new ConcreteFactory1(); System.out.println("使用 ConcreteFactory1"); System.out.println("ProductA: "+factory.createProductA().getClass().getName()); System.out.println("ProductB: "+factory.createProductB().getClass().getName()); factory = new ConcreteFactory2(); System.out.println("使用 ConcreteFactory2"); System.out.println("ProductA: "+factory.createProductA().getClass().getName()); System.out.println("ProductB: "+factory.createProductB().getClass().getName()); }}
0 0
- 抽象工厂——对象创建型模式
- ABSTRACT FACTORY(抽象工厂)—对象创建型模式
- 创建型模式—抽象工厂模式
- 设计模式(对象创建)——抽象工厂模式
- 创建型模式——抽象工厂
- 对象创建模式——抽象工厂(Abstract Factory)
- 抽象工厂模式(对象创建)
- 设计模式之ABSTRACT FACTORY(抽象工厂)—对象创建型模式
- 设计模式之对象创建型 — abstract_factory 抽象工厂模式
- 创建模式—抽象工厂模式
- 创建型设计模式——抽象工厂模式
- 抽象工厂模式(AbstractoryFactory)——创建型模式
- 创建型模式之三——抽象工厂模式
- 创建型模式——抽象工厂模式
- java创建型设计模式——抽象工厂模式
- 设计模式深入浅出(一)对象创建——工厂方法,抽象工厂
- Abstract Factory(抽象工厂) -- 对象创建型模式
- abstract factory(抽象工厂) 对象创建型模式
- 反向代理服务器
- 浙大PAT甲级 1082
- iOS中解析json数据
- Android 之 三级缓存(内存!!!、本地、网络)及内存LruCache扩展 及源码分析--- 学习和代码讲解
- 快照技术原理
- 抽象工厂——对象创建型模式
- freemarker常见语法大全
- 关于改变Google浏览器出现input输入框变黄色问题
- [SCOI2005]最大子矩阵
- Webspear 配置解决JSPG0049E配置问题
- 工作流Activiti的学习总结(八)Activiti自动执行的应用
- Service二——Android系统服务
- 用过的linux命令
- RESTful API 设计指南