抽象工厂类和普通工厂类的区别

作者: ahking17 | 来源:发表于2017-03-06 14:41 被阅读864次
普通工厂类中提供的工厂方法只负责创建某一种类型的对象.

eg. 只负责创建NativePage类的对象.

public class NativePageFactory {

    static NativePage createNativePageForURL(String url, NativePage candidatePage,
                                             Tab tab, TabModelSelector tabModelSelector, Activity activity,
                                             boolean isIncognito) {
    }
    public static NativePage createErrorNativePageJustForFrozenNativePage(Activity activity, Tab tab, WebPageInfo wpi) {
        return new ErrorNativePage(activity, tab, wpi);
    }

    public static NativePage createDangerNativePageJustForFrozenNativePage(Activity activity, Tab tab) {
        return new DangerNativePage(activity, tab);
    }
}

可以看到, 3个工厂方法创建的对象都是NativePage类型的.

抽象工厂类中提供多个工厂方法, 可以创建出不同类型的对象.

eg. MacFactory类中提供的工厂方法,分别负责创建2种不同类型的对象.

class AbstractFactory {
public:
    virtual Button* CreateButton() =0;
    virtual Border* CreateBorder() =0;
};

class MacFactory: public AbstractFactory {
public:
    MacButton* CreateButton() { return new MacButton; }
    MacBorder* CreateBorder() { return new MacBorder; }
};

class WinFactory: public AbstractFactory {
public:
    WinButton* CreateButton() { return new WinButton; }
    WinBorder* CreateBorder() { return new WinBorder; }
};

可以看到, MacFactory类提供的2个方法分别负责创建Button和Border两种不同类型的对象.

refer to:
https://zh.wikipedia.org/wiki/%E6%8A%BD%E8%B1%A1%E5%B7%A5%E5%8E%82

----DONE.----

相关文章

  • 抽象工厂类和普通工厂类的区别

    普通工厂类中提供的工厂方法只负责创建某一种类型的对象. eg. 只负责创建NativePage类的对象. 可以看到...

  • 3. 设计模式的代码表示之一

    一、工厂模式(【客户类】→【工厂类/工厂方法】→创建【服务类】) 二、抽象工厂(【客户类】→【抽象工厂类】→【工厂...

  • 工厂模式

    简单工厂模式 自行车类 工厂类 抽象工厂模式 自行车类 抽象工厂类 自行车工厂类

  • iOS设计模式--抽象工厂

    抽象工厂与简单工厂最大的区别就是抽象工厂的工厂类也是抽象的。 在软件设计中,如果客户端想手工创建一个类的对象,那么...

  • 抽象工厂模式

    新增抽象工厂接口 CourseFactory(课程工厂) 新增手记的抽象类 和 抽象方法 新增视频的抽象类 和 抽...

  • 抽象工厂主要包含四部分

    抽象工厂主要包含四部分: 抽象工厂类:负责创建抽象类 工厂子类:继承自抽象工厂类,重写父类定义的对应方法,直接在客...

  • iOS 工厂模式(抽象工厂)

    抽象工厂管理类 抽象工厂类 苹果工厂 谷歌工厂 手机基类 苹果手机 安卓手机 手表基类 苹果手表 安卓手表 使用

  • spring 的工厂类

    spring 的工厂类 1. 工厂类 BeanFactory 和 ApplicationContext 的区别。 ...

  • 工厂方法模式

    抽象工厂类或接口 抽象工厂类或接口实现类 抽象产品类或接口 抽象产品类或接口实现类 使用

  • 抽象工厂模式

    抽象工厂类或接口 抽象工厂类或接口实现类 抽象产品类或接口 抽象产品类或接口实现类 使用

网友评论

    本文标题:抽象工厂类和普通工厂类的区别

    本文链接:https://www.haomeiwen.com/subject/necugttx.html