美文网首页
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