优点:
将对象的创建统一起来便于维护和整体把控,
开闭原则:对扩展开放,对修改封闭
缺点:
使用限制:工厂模式需要类实现它的接口并且在业务内部存在明显的继承关系
缺点:耦合性提高,由于工厂类集中了所有实例的创建逻辑,违反了高内聚责任分配原则,将全部创建逻辑集中到了一个工厂类中,这种对条件的判断和对具体产品类型的判断交错在一起,很难避免模块功能的蔓延,对系统的维护和扩展非常不利。
可以通过高度层次化和模块化来提高系统的开闭性,而不必生硬地去套用工厂模式
示例代码:
interface Car {
void drive();
}
class Benz implements Car {
@Override
public void drive() {
System.out.println("drive Benz");
}
}
class BMW implements Car {
@Override
public void drive() {
System.out.println("drive BMW");
}
}
class CarFactory {
public static Car creator(String carType) {
if (carType.equals("Benz")) {
return new Benz();
} else if (carType.equals("BMW")) {
return new BMW();
} else {
throw new UnsupportedOperationException("car with type" + carType
+ " is not supported.");
}
}
}
分享到:
相关推荐
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 抽象工厂模式