美文网首页
Abstract Pattern(抽象工厂模式)

Abstract Pattern(抽象工厂模式)

作者: 杨志聪 | 来源:发表于2024-06-30 10:06 被阅读0次

    解决的问题

    假设你要开发一个app,app的界面支持MaterialDesign和Ant两种主题。不同的主题所用的组件是不一样的,例如按钮组件,MaterialDesign主题就是MaterialButton,Ant主题就是AntButton。
    一开始可以这样设计:


    未使用抽象工厂.png

    每个ViewController通过判断当前的theme,实例化对应的组件。这样设计的问题是:

    1. 如果要添加新的theme,每个ViewController都要修改,改动很大。
    2. ViewController的代码量可能会很大。

    这种情况可以使用抽象工厂:


    使用抽象工厂.png

    ViewController只和ComponentFactory打交道,ComponentFactory可以创建对应theme的全部组件。

    抽象工厂和工厂模式的区别在于,工厂模式是通过工厂方法创建对象,抽象工厂是通过抽象类创建对象。

    相关文章

      网友评论

          本文标题:Abstract Pattern(抽象工厂模式)

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