JAVA--抽象工厂模式--设计模式二
来源:互联网 发布:linux acpi 编辑:程序博客网 时间:2024/06/05 17:28
1,抽象工厂的实例和好处:
(1)抽象工厂模式又名工具箱,其意图是允许创建一族相关或相互依赖的对象
(2)抽象工厂模式是工厂方法模式的进一步抽象,是为创建一组相关的或相互依赖的对象提供一个接口,无需指定他们的具体类。 (3)抽象工厂模式相比于工厂方法模式来说,每个具体工厂可以生产一族产品(即多种产品);而工厂方法模式是具体工厂生产对应的具体产品,只能生产一种产品,
当生产族中只有一种产品时抽象工厂退化成工厂方法模式。
public class Main { public static void main(String[] args) { } interface AbstractFactory{ public ProductA factoryA(); public ProductB factoryB(); } public interface ProductA{ public void method1(); public void method2(); } interface ProductB{ public void method1(); public void method2(); }}class ConcreateFactory1 implements AbstractFactory{ public ProductA factoryA() { return new ConcreateProductA1(); } public ProductB factoryB() { return new ConcreateProductB1(); } }class ConcreateFactory2 implements AbstractFactory{ public ProductA factoryA() { return new ConcreateProductA2(); } public ProductB factoryB() { // TODO Auto-generated method stub return new ConcreateProductB2(); } }class ConcreateProductA1 implements ProductA{ public void method1() { System.out.println("等级为1的产品A的method1"); } public void method2() { System.out.println("等级为1的产品A的method2"); } }class ConcreateProductA2 implements ProductA{ public void method1() { System.out.println("等级为2的产品A的method1"); } public void method2() { System.out.println("等级为2的产品A的method2"); } }class ConcreateProductB1 implements ProductB{ public void method1() { System.out.println("等级为1的产品B的method1"); } public void method2() { System.out.println("等级为1的产品B的method2"); } }class ConcreateProductB2 implements ProductB{ public void method1() { System.out.println("等级为2的产品B的method1"); } public void method2() { System.out.println("等级为2的产品B的method2"); } }
1 0
- JAVA--抽象工厂模式--设计模式二
- JAVA设计模式(二)----抽象工厂模式
- JAVA设计模式之二抽象工厂
- 设计模式<二>-抽象工厂
- java设计模式(二)--抽象工厂模式
- 浅谈Java设计模式(二)抽象工厂模式
- JAVA设计模式之抽象工厂模式 (二)
- JAVA设计模式之二:抽象工厂模式
- java设计模式(二)——抽象工厂模式
- java设计模式(二)---抽象工厂模式
- 设计模式(二):抽象工厂模式
- 设计模式笔记二:抽象工厂模式
- 设计模式(二) 抽象工厂模式
- 设计模式(二):抽象工厂模式
- 设计模式(二)抽象工厂模式
- java设计模式--抽象工厂
- Java设计模式-抽象工厂
- Java设计模式--抽象工厂
- opencv 皮肤光泽评判
- jquery跨域问题
- 深入浅出讲解:php的socket通信
- .Net下实现可扩展的编程方法简述
- 菜鸟学习Node.js--express(一)
- JAVA--抽象工厂模式--设计模式二
- 基于OpenWrt添加ubus支持的示例分享
- Sicily-1001. Alphacode
- Servlet类基础详解
- ACM-ICPC是什么样的比赛
- Java 父类子类的对象初始化过程
- js操作map
- 在项目中开发中的一些经验
- Angular构建简单应用的步骤分解