模版方法模式实际就是把不变的行为放在父类,把自定义行为放在子类。
我曾经写过一个控件,只有一个类,然后通过枚举设置它的 type,在 .m 中,通过 type 完成不同的实现。(这个 viewController 的 UI 是固定的,不同的 type 是在装载不同的 model)
只有一个类,看似较为简单,但实际上 type 增加到5、6个的时候,类中的代码已经很多,而且不好维护。
这样写违反了开放-封闭原则。应该将相同的操作提取一个父类出来,然后通过不同的子类覆写父类方法,完成操作。
本文探讨了模版方法模式的应用,对比了一种使用单一类和枚举类型来区分不同行为的方法,并指出了其违反开放-封闭原则的问题。提出了将公共行为抽象到父类,具体行为由子类实现的设计思路。
模版方法模式实际就是把不变的行为放在父类,把自定义行为放在子类。
我曾经写过一个控件,只有一个类,然后通过枚举设置它的 type,在 .m 中,通过 type 完成不同的实现。(这个 viewController 的 UI 是固定的,不同的 type 是在装载不同的 model)
只有一个类,看似较为简单,但实际上 type 增加到5、6个的时候,类中的代码已经很多,而且不好维护。
这样写违反了开放-封闭原则。应该将相同的操作提取一个父类出来,然后通过不同的子类覆写父类方法,完成操作。

被折叠的 条评论
为什么被折叠?