【发布时间】:2019-09-10 17:19:57
【问题描述】:
正在做一个项目,所以我会尝试概括这一点。
假设我有一个带有抽象方法 method() 的抽象类 A。
A有4个子类:B、C、D、E,但 B 和 C 具有完全相同的 method() 实现,以及 D 和 E 具有完全相同的 method() 实现。如何以最大限度地减少重复代码的方式组织代码?
【问题讨论】:
-
你真的需要使用模板方法吗?您可以有两个 A 的子类 - 每个方法一个。然后你可以让 B 和 C 扩展一个,而 D 和 E 扩展另一个。如果您不想要更多子类并且可以放弃模板方法,则可以采用策略模式:为每个方法制定策略,然后使用相应的策略组合类。
标签: design-patterns ooad