Java设计模式--抽象工厂模式
来源:互联网 发布:流程优化岗面试题 编辑:程序博客网 时间:2024/05/16 06:43
抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品具体类型的情况下,创建多个产品族中的产品对象。这就是抽象工厂模式的用意。
每个模式都是针对一定问题的解决方案。抽象工厂模式面对的问题是多产品等级结构的系统设计。
在学习抽象工厂具体实例之前,应该明白两个重要的概念:产品族和产品等级。
3.抽象产品
4.具体产品
5.测试类
6.测试结果:
每个模式都是针对一定问题的解决方案。抽象工厂模式面对的问题是多产品等级结构的系统设计。
在学习抽象工厂具体实例之前,应该明白两个重要的概念:产品族和产品等级。
产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如AMD的CPU和ADM芯片的主板,组成一个家族。Intel的CPU和Intel芯片的主板,又组成一个家族。而这两个家族都来自于两个产品等级:CPU,主板。一个等级结构是由相同的结构的产品组成,示意图如下:
下面以一个代码来说明抽象工厂模式:
1.抽象工厂:
package abstractfactory;public interface AbstractFactory {public Engine createEngine();public Aircondition createAircondition();}2.具体工厂
package abstractfactory;public class FactoryA implements AbstractFactory {public Engine createEngine() {// TODO Auto-generated method stubreturn new EngineA();}public Aircondition createAircondition() {// TODO Auto-generated method stubreturn new AirconditionA();}}public class FactoryB implements AbstractFactory{public Engine createEngine() {// TODO Auto-generated method stubreturn new EngineB();}public Aircondition createAircondition() {// TODO Auto-generated method stubreturn new AirconditionB();}}
3.抽象产品
package abstractfactory;public interface Engine {}public interface Aircondition {}
4.具体产品
package abstractfactory;public class EngineA implements Engine {public EngineA(){System.out.println("生产-->EngineA");}}public class EngineB implements Engine {public EngineB(){System.out.println("生产-->EngineB");}}public class AirconditionA implements Aircondition {public AirconditionA(){System.out.println("生产-->AriconditonA");}}public class AirconditionB implements Aircondition{public AirconditionB(){System.out.println("生产-->AirconditionB");}}
5.测试类
package abstractfactory;public class Test {public static void main(String[] args) {Engine e = new FactoryA().createEngine();Aircondition a = new FactoryA().createAircondition();Engine e1 = new FactoryB().createEngine();Aircondition a1 = new FactoryB().createAircondition();}}
6.测试结果:
生产-->EngineA
生产-->AriconditonA
生产-->EngineB
生产-->AirconditionB
0 0
- java设计模式--抽象工厂
- Java设计模式-抽象工厂
- Java设计模式--抽象工厂
- java设计模式-抽象工厂
- Java设计模式-抽象工厂设计模式
- java设计模式之抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式_抽象工厂模式
- Java设计模式之抽象工厂模式
- 设计模式(JAVA)------抽象工厂模式
- java设计模式之抽象工厂模式
- 【Java设计模式】之抽象工厂模式
- java设计模式---抽象工厂模式
- java设计模式---抽象工厂模式
- java设计模式---抽象工厂模式
- JAVA系列-设计模式-抽象工厂模式
- java设计模式 之 抽象工厂模式
- Java--设计模式之抽象工厂模式
- [转]Js函数加括号、不加括号
- Spring容器的初始化4种方式
- Hinton Neural Network课程笔记11b: 利用Hopfield Net进行信息存储
- 深入理解Java:注解(Annotation)--注解处理器
- 盒子模型
- Java设计模式--抽象工厂模式
- GalaxyOJ-510 (点分治)
- 我学tensorflow遇到的问题【总结】
- C++ 智能指针(下)
- ninePacth(.9.png) iOS 的实现
- 深入理解Java:注解(Annotation)基本概念
- 今儿开始学算法,希望在此与c友共勉!
- 色彩颜色及可选颜色使用分析
- python读取csv文件