抽象工厂模式可以分为两个继承层次来说
一个是工厂类的继承层次 如
/**
* 分辨率工厂
* @author xuly
*
*/
public interface ResolutionFactory {
DisplayDriver createDisplayDriver();
PrintDriver createPrintDriver();
}
/**
* 高分辨率工厂
* @author xuly
*
*/
public class HighResFactory implements ResolutionFactory {
public DisplayDriver createDisplayDriver() {
return new HighDisplayDriver();
}
public PrintDriver createPrintDriver() {
return new HighPrintDriver();
}
}
/**
* 低分辨率工厂
* @author xuly
*
*/
public class LowResFactory implements ResolutionFactory {
public DisplayDriver createDisplayDriver() {
return new LowDisplayDriver();
}
public PrintDriver createPrintDriver() {
return new LowPrintDriver();
}
}
因为要生产多个产品系列 所以要多个工厂,一个工厂负责一类产品的生产
为什么叫抽象工厂呢?
先看类LowResFactory, 如果不实现ResolutionFactory 接口的话,LowResFactory就是一个简单的工厂类,但是因为要创建的产品是分系列的,因此我们抽象出一个ResolutionFactory 接口,然后分别实现,工厂的层次是受产品的层次控制的,如果有3个产品系列那么相应的就应该有3个工厂
另一个是产品的继承层次 如
//显示驱动
public interface DisplayDriver {
public void draw();
}
public class HighDisplayDriver implements DisplayDriver {
public void draw() {
System.out.println( "高分辨率显示图形." );
}
}
public class LowDisplayDriver implements DisplayDriver {
public void draw() {
System.out.println( "低分辨率显示图形." );
}
}
//打印驱动
public interface PrintDriver {
void print();
}
public class HighPrintDriver implements PrintDriver {
public void print() {
System.out.println( "高分辨率打印图形." );
}
}
public class LowPrintDriver implements PrintDriver {
public void print() {
System.out.println( "低分辨率打印图形." );
}
}
没什么好说的 就是简单的继承
Client
public class Client2 {
private ResolutionFactory resFactory;
public Client2(ResolutionFactory resFactory){
this.resFactory = resFactory;
}
public void doDraw(){
resFactory.createDisplayDriver().draw();
}
public void doPrint(){
resFactory.createPrintDriver().print();
}
//调用
public static void main(String[] args) {
Client2 control = new Client2(new HighResFactory());
control.doDraw();
control.doPrint();
}
}
分享到:
相关推荐
java设计模式 抽象工厂模式详解 一张图让你彻底明白抽象工厂模式
设计模式 - 抽象工厂模式 抽象工厂模式是一种创建型设计模式,它提供了一种方式来创建一组相关或相互依赖的对象,而不需要指定具体的类。该模式允许客户端使用抽象的接口来创建一组相关的产品,而不需要关系实际...
介绍的是工厂模式 包括简单工厂模式、工厂方法模式、抽象工厂模式 包括PPT和代码
设计模式-抽象工厂模式(讲解及其实现代码)
工厂方法模式和抽象工厂模式的区别,对工厂方法模式和抽象工厂模式做了简单的比较
设计模式 抽象工厂模式 反射 配置文件 设计模式 抽象工厂模式 反射 配置文件 设计模式 抽象工厂模式 反射 配置文件 设计模式 抽象工厂模式 反射 配置文件 设计模式 抽象工厂模式 反射 配置文件 设计模式 抽象工厂...
深入浅出设计模式之抽象工厂模式+工厂方法模式+策略模式实现手机加工厂(加类图)
抽象工厂模式ppt。抽象工厂模式ppt。抽象工厂模式ppt。
设计模式--抽象工厂模式实现多数据库连接 设计模式,.net设计模式,抽象工厂
java设计模式【之】抽象工厂模式【源码】【场景:制作咖啡】 * 抽象工厂 * * 创建对象实例时,不要直接 new 类, 而是把这个new 类的动作放在一个工厂的方法中,并返回。 * 在工厂方法的基础上,进一步抽象工厂...
抽象工厂模式(Abstract Factory Pattern) 引入: 在前面介绍的两个创建型模式里面,我们解决的都是有关"new"的问题,用它们来避免显式指定类创建对象。我写的也非常简单易懂,相信看过的朋友们都应该对简单工厂...
抽象工厂模式.ppt抽象工厂模式.ppt
通过C++实现了简单工厂模式、工厂模式、抽象工厂模式三大设计模式的经典案例。
设计模式 抽象工厂模式 三层架构 设计模式 抽象工厂模式 三层架构 设计模式 抽象工厂模式 三层架构 设计模式 抽象工厂模式 三层架构 设计模式 抽象工厂模式 三层架构 要您一个资源分,也算是对我的尊重,谢谢下载。
抽象工厂模式实现计算器源码,学习C#设计模式。
在C#项目开发中设计模式中的抽象工厂模式应用实例实现。
抽象工厂模式的实现源代码,清晰易懂,还有详细的说明
通过抽象工厂搜提供的接口,可以创建产品的家族,利用这个接口书写代码,我们...这是与博客《抽象工厂模式--GOF的23个之一》配套实例源代码,具体说明欢迎阅读。 如有好的建议,可留言或发至笔者邮箱:fzb_xxzy@163.com
项目需求: 有两间塑料加工厂(A厂仅生产容器类产品;B厂仅生产模具类产品);... 抽象工厂模式以一种倾斜的方式支持增加新的产品,它为新产品族的增加提供方便,而不能为新的产品等级结构的增加提供这样的方便。
c++ java 抽象工厂模式