对抽象工厂模式还不是吃的很透,这里只写我的个人看法,希望各位能花些时间看下,帮我指正其中的认识误差。
考虑这样一种情况:有一个产品,不再是由单一的一种产品组成,而是有两种或两种以上的产品组成。比如说电脑,有一个主机和一个显示器。比如A类电脑有一个小主机和一个液晶显示器,B类电脑有一个大主机和CRT显示器。如果使用工厂方法模式来实现,就必须由四个工厂类来分别创建着四个产品。这时候,会想到使用一个类来完成主机和显示器的创建,但是主机和显示器是两个抽象的类,是不能直接实例化的,因此,就需要使用抽象工厂模式来解决这一问题。
个人感觉抽象工厂模式与工厂方法模式非常类似,只不过工厂方法模式中产品的抽象父类只有一个,也就是说产品只由单一的产品组成,而抽象工厂模式中的产品是有两种或两种以上的产品组成的。不知道我这样的理解对不对,如果有错误的地方,还希望各位指正。
约定:产品C1由产品A1和产品B1组成,产品C2由产品A2和产品B2组成。
产品A的抽象类及子类:
同样的,产品B的抽象类及子类:
之后便是抽象工厂类了:
产品C1的工厂类:
产品C2的工厂类:
如果仔细的观察的话,可以发现抽象工厂类也是部分符合开闭原则的。
符合开闭原则的情况是:只增加集成产品的种类,也就是说,增加一个与C1,C2同级的产品C3,C4。。。等情况下(此例中的情况是有一种新的电脑,由另一种主机和显示器组成),是符合开闭原则的。这种情况下,只需要增加相应的产品类和工厂类即可,不需要对现有的代码进行修改。
不符合的情况是:增加产品的组成产品种类,即C产品的组成产品不只由A和B组成(此例中为电脑不再只由显示器和主机组成,可能增加了其他部件,如鼠标等)。这种情况,是需要对现有代码进行修改的,需要修改的是工厂类。
分享到:
相关推荐
总结来说,Java设计模式之抽象工厂模式是一种用来创建一系列相关对象的设计模式,它通过提供抽象工厂接口来隔离具体产品的创建,使系统具备更好的扩展性和封装性。在实际开发中,我们可以根据需求选择使用抽象工厂...
java设计模式之抽象工厂模式实例,希望对大家有所帮助。
通过阅读《Java设计模式之抽象工厂模式.pdf》这份文档,你可以更深入地理解抽象工厂模式的原理、实现方式以及如何在Java项目中应用这一模式。文档中可能涵盖了模式的优缺点、实例分析、与其他设计模式的比较等内容,...
抽象工厂模式是设计模式中的一种,属于创建型模式,它为创建一组相关或相互依赖的对象提供了一个统一的接口,使得客户端无需关注这些对象的具体实现细节,仅需与抽象工厂交互即可。这种模式遵循开放封闭原则(OCP)...
抽象工厂模式是软件设计模式中的一种,属于创建型模式,它提供了一种创建对象组族的接口,而无需指定其具体类。这种模式的关键在于抽象工厂,它定义了一组产品对象的接口,并且允许子类根据不同的实现来生产一系列...
在Java设计中,抽象工厂模式通常用于处理多个相关产品对象的创建。例如,我们可能有一个系统需要创建不同类型的植物(Plant)和水果(Fruit),每种类型都有其特定的实现,如PlantA和PlantB,FruitA和FruitB。这些...
Java设计模式之抽象工厂模式实例详解 Java设计模式之抽象工厂模式实例详解是指在软件设计中,通过提供一个创建一系列相关或相互依赖对象的接口,且无需指定它们具体的类别的方式来生成这些对象的模式。抽象工厂模式...
**JAVA设计模式之抽象工厂** 在软件工程中,设计模式是一种通用的解决方案,用来解决在特定上下文中反复出现的问题。抽象工厂(Abstract Factory)模式是其中一种创建型设计模式,它提供一个创建对象的接口,但允许...
总的来说,抽象工厂模式在Java中是一种非常实用的设计模式,它可以帮助我们封装产品的创建过程,降低系统间的耦合度,同时提供了更好的可扩展性,使得添加新的产品族或者产品变得更加容易。在处理具有多种变体的复杂...
**Java设计模式——抽象工厂** 在软件工程中,设计模式是一种在特定场景下解决常见问题的模板或蓝图。抽象工厂模式是设计模式中的一种结构型模式,它提供了一个创建对象族的接口,但允许子类决定实例化哪一个类。这...
本文将深入探讨Java中的工厂模式,包括基本的工厂模式、抽象工厂模式以及工厂方法模式。 **工厂模式**:工厂模式的核心思想是提供一个创建对象的接口,但让实现这个接口的类来决定实例化哪一个类。这样,客户端无需...
java常用设计模式-抽象工厂模式 抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它通过定义一个创建对象的接口来创建对象,但将具体实现的决定留给子类来决定。在抽象工厂模式中,接口是负责创建...
工厂模式和抽象工厂模式是两种常用的创建型设计模式,它们在Java中有着广泛的应用。本文将详细探讨这两种模式的区别,并提供代码示例来加深理解。 工厂模式和抽象工厂模式都是创建型设计模式,它们提供了代码解耦和...
工厂模式分为三种主要类型:简单工厂模式、工厂方法模式和抽象工厂模式。 1. **简单工厂模式** 简单工厂模式是最简单的工厂模式实现,它提供一个静态方法或者类来创建对象,这个类通常被称为“工厂”。用户只需要...
抽象工厂模式是Java设计模式中的一种创建型模式,它提供了创建对象族的接口,而具体的对象族由子类决定。这种模式的主要目的是隔离接口与实现,使得客户端代码在更换产品族时无需修改,增强了软件的可扩展性和可维护...