哪种创建模式最能描述这段代码?

时间:2016-08-25 23:44:37

标签: c++ object design-patterns factory

我正在研究设计模式(不,这不是针对学校,而是我自己的教化和自我提升)。我参与过的项目对其中一个组件具有以下架构:

class ProductFactory {
    static AbstractProduct * getProduct() {
        #ifdef ANDROID
            return new AndroidProduct;
        #elif defined IOS
            return new IOSProduct;
        #endif
            return 0;
    }
};

根据我对Abstract Factory和Factory Method的读数,我正在尝试对此代码进行分类。例如,创建者类是具体的,只创建了一种产品(与规范窗口,滚动条等相反)。但是,创建的逐个产品不会延迟到子类 - 而是由一个创建者类创建不同的子类。

所以我的问题很简单:上面的代码最符合哪种模式,为什么?

非常感谢!

2 个答案:

答案 0 :(得分:1)

  

上述代码最符合哪种模式,为什么?

这不是一个实际的模式本身;但是,一个具体的类,其唯一目的是实例化正确的实现,通常称为 Simple Factory

当您要实例化的具体实现仅限于少数排列组合时,此惯用法非常有用。

答案 1 :(得分:-1)

我会说这是

经纪人模式https://en.wikipedia.org/wiki/Broker_Pattern

代理模式https://en.wikipedia.org/wiki/Proxy_pattern

在抽象工厂模式中