`

Abstract Factory

阅读更多

如果应用程序要适应不同平台的话,要封装那些对平台的依赖关系。如果不事先考虑好封装,程序中会出现很多#ifdef语句。
Abstract Factory模式,是用来代替new来创建那些相互之间有依赖关系的对象的。该模式把所有平台共同拥有的组件都找出来,然后一个个定义成平台无关的类,最后定义一个Factory,负责生成所有这些组件。客户在使用时,只需要使用该平台的Factory,就可以生成该平台独有的组件对象。

下面这个程序没有封装好平台相关性,所以看着很乱。

重构以后,成了下面这个样子:

分享到:
评论

相关推荐

    Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)

    Java设计模式是面向对象编程...在阅读《Chapter1___Java常用设计模式(SingleTon、FactoryMethod、AbstractFactory)》的相关资料时,你可以更深入地学习这些模式的细节,包括适用场景、优缺点以及如何在实际项目中实现。

    对设计模式—Abstract Factory模式的认识

    ### 设计模式——Abstract Factory模式的认识 在软件工程领域,设计模式是一种被广泛接受的解决方案,用于解决在软件设计过程中常见的问题。其中,Abstract Factory模式是23种GoF(Gang of Four)设计模式之一,它...

    创建型模式之抽象工厂模式(Abstract Factory Pattern)

    1. 抽象工厂(Abstract Factory):这是模式的核心,它是一个接口或抽象类,定义了一系列创建对象的方法,但并不直接实例化具体的对象。这些方法用于创建一系列相关或相互依赖的对象。 2. 具体工厂(Concrete ...

    设计模式之Abstract Factory模式和代码实现

    在设计模式中,Abstract Factory模式是一种用来解决在不指定具体实现的情况下创建一系列相关或相互依赖对象的模式。在本文的上下文中,我们看到它被应用于一个奇幻RPG游戏的角色种族设计,每个种族(如人类、精灵)...

    设计模式C++学习之抽象工厂模式(AbstractFactory)

    在这个例子中,`AbstractProductA`和`AbstractProductB`是抽象产品,`ConcreteProductA1/A2`和`ConcreteProductB1/B2`是具体产品,`AbstractFactory`是抽象工厂,`ConcreteFactory1/2`是具体工厂。客户端代码通过...

    AbstractFactory案例代码

    在“AbstractFactory案例代码”中,我们可能看到一个实现跨平台数据访问的例子,这里提到了支持SQLServer和Oracle两种数据库。这表明抽象工厂将用于创建与不同数据库交互的适配器或连接对象。在分层架构设计中,通常...

    创建型-抽象工厂模式(Abstract Factory)

    1. 抽象工厂(Abstract Factory):这是模式的核心,定义了一组创建对象的接口,客户端通过这个接口请求创建所需的产品。这个接口不直接创建产品,而是将产品创建的职责委托给具体工厂。 2. 具体工厂(Concrete ...

    AbstractFactory模式C++实现

    总的来说,AbstractFactory模式在C++中的实现充分利用了面向对象的特性,如抽象类、继承和多态,使得系统具有更好的灵活性和扩展性。通过这种方式,我们可以轻松地替换或增加新的产品族,而不会对原有代码造成太大的...

    AbstractFactory.rar

    - 抽象工厂接口的头文件(如`AbstractFactory.h`),定义了创建产品的接口。 - 具体工厂类的头文件和源文件(如`ConcreteFactory1.h`、`ConcreteFactory1.cpp`和`ConcreteFactory2.h`、`ConcreteFactory2.cpp`),...

    Abstract Factory Pattern.docx

    `AbstractFactory`是抽象工厂,定义了创建`AbstractProductA`和`AbstractProductB`的接口;`ConcreteFactory1`和`ConcreteFactory2`是具体工厂,分别创建`ProductA1`和`ProductB1`,以及`ProductA2`和`ProductB2`。`...

    C# 抽象工厂 AbstractFactory.rar

    这个压缩包“C# 抽象工厂 AbstractFactory.rar”可能包含了一个关于如何在C#中实现抽象工厂模式的实例或教程。 抽象工厂模式是一种创建型设计模式,它提供了一种创建对象族的方式,而无需指定具体类。在C#中,这种...

    抽象工厂AbstractFactory

    抽象工厂(Abstract Factory)模式是一种创建型设计模式,它提供了一种创建对象的接口,但允许子类决定实例化哪一个类。这种模式是基于对象的抽象,而不是具体的类,因此,它允许创建一系列相关的对象,而无需指定...

    003AbstractFactory.rar

    1. 抽象工厂(Abstract Factory):定义一个创建对象的接口,但不指定具体的产品实现。这个接口通常是定义了一组相关产品的生产方法。 2. 具体工厂(Concrete Factory):实现了抽象工厂接口,负责创建具体的产品...

    AbstractFactory.zip

    抽象工厂模式的核心组成部分包括抽象工厂(AbstractFactory)、具体工厂(ConcreteFactory)、抽象产品(AbstractProduct)以及具体产品(ConcreteProduct)。以下是对这些角色的详细解释: 1. 抽象工厂(Abstract...

    AbstractFactory 抽象工厂

    抽象工厂(Abstract Factory)模式是设计模式中的一种创建型模式,它提供了一种...在阅读提供的博客文章《AbstractFactory 抽象工厂》和研究压缩包中的相关文件时,你可以深入学习到更多关于这个模式的实践和应用场景。

    设计模式 创建型模式 Abstract Factory模式(抽象工厂)

    Abstract Factory模式 1 定义创建对象的接口,并封装对象的创建 2 将具体化类的工作延迟到了类中 3 创建创建一组相关对象或者说是一组相互依赖的对象 一般情况下,我们为了提高内聚和松耦合,经常会使用多态来...

    抽象工厂模式abstractFactory

    public class WindowsFactory implements AbstractFactory { @Override public Button createButton() { return new WindowsButton(); } @Override public Window createWindow() { return new ...

    走进设计模式之抽象工厂(Abstract Factory)

    1. **模式结构**:抽象工厂模式通常包括抽象工厂接口(AbstractFactory),具体工厂类(ConcreteFactory),抽象产品接口(Product)以及具体产品类(ConcreteProduct)。抽象工厂定义了创建产品的方法,而具体工厂...

    AbstractFactory

    抽象工厂通常包含一个抽象工厂接口(例如:`AbstractFactory`)和多个具体工厂类(如:`ConcreteFactory1`和`ConcreteFactory2`)。抽象工厂接口定义了创建一系列相关或相互依赖对象的接口,而无需指定它们的具体类...

    通过python实现抽象工厂模式(Abstract Factory Pattern).rar

    抽象工厂模式(Abstract Factory Pattern)是一种创建型设计模式,它提供了一种在不指定具体类的情况下创建一系列相关或相互依赖对象的接口。这个模式使得客户端代码与具体产品的实现解耦,从而提高了系统的灵活性和...

Global site tag (gtag.js) - Google Analytics