Java设计模式--抽象工厂模式
2017-04-18 14:05
375 查看
抽象工厂模式可以向客户端提供一个接口,使得客户端在不必指定产品具体类型的情况下,创建多个产品族中的产品对象。这就是抽象工厂模式的用意。
每个模式都是针对一定问题的解决方案。抽象工厂模式面对的问题是多产品等级结构的系统设计。
在学习抽象工厂具体实例之前,应该明白两个重要的概念:产品族和产品等级。
产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如AMD的CPU和ADM芯片的主板,组成一个家族。Intel的CPU和Intel芯片的主板,又组成一个家族。而这两个家族都来自于两个产品等级:CPU,主板。一个等级结构是由相同的结构的产品组成,示意图如下:
下面以一个代码来说明抽象工厂模式:
1.抽象工厂:
3.抽象产品
4.具体产品
5.测试类
6.测试结果:
生产-->EngineA
生产-->AriconditonA
生产-->EngineB
生产-->AirconditionB
每个模式都是针对一定问题的解决方案。抽象工厂模式面对的问题是多产品等级结构的系统设计。
在学习抽象工厂具体实例之前,应该明白两个重要的概念:产品族和产品等级。
产品族:是指位于不同产品等级结构中,功能相关联的产品组成的家族。比如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 stub return new EngineA(); } public Aircondition createAircondition() { // TODO Auto-generated method stub return new AirconditionA(); } } public class FactoryB implements AbstractFactory{ public Engine createEngine() { // TODO Auto-generated method stub return new EngineB(); } public Aircondition createAircondition() { // TODO Auto-generated method stub return 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
相关文章推荐
- Java设计模式-----Abstract Factory抽象工厂模式
- java设计模式---Abstract Facotry Pattern---抽象工厂模式
- Java与设计模式(03)--抽象工厂模式
- Java设计模式二:抽象工厂模式(Abstract Factory)/工厂方法(Factory Method)
- Java设计模式 - 抽象工厂模式(Abstract Factory)
- Java 可复用的面向对象的设计模式之 工厂模式Factory详解 :简单工厂模式 工厂方法模式 抽象工厂模式
- java设计模式之工厂方法模式以及简单工厂模式还有抽象工厂模式
- java设计模式——抽象工厂模式
- JAVA设计模式 — 抽象工厂模式(Abstract Factory)
- Java设计模式之三(抽象工厂模式)
- java 设计模式 学习笔记(3) 抽象工厂模式
- 浅谈 java 设计模式--抽象工厂模式(AbstractFactory pattern)
- Java设计模式圣经连载(03)-抽象工厂模式
- java 设计模式-创建模式之抽象工厂模式
- 23种经典设计模式的java实现_1_抽象工厂模式
- Java设计模式-----Abstract Factory抽象工厂模式
- Java设计模式-----Abstract Factory抽象工厂模式
- JAVA设计模式之抽象工厂模式
- Java设计模式之抽象工厂模式
- JAVA设计模式☞☞工厂方法模式和抽象工厂模式区别