毕业设计做网站有什么好的创意十大培训机构教育培训机构哪家好
13 Template_method(行为型)
-
- 模板方法
- 准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。
- 框架已经实现了大部分,让子类去实现特定需求的东西
- 什么时候用
- 部分算法已经实现,变化的算法留给子类
- 为了避免代码复制,将子类的共有行为放到抽象类里
- 控制子类的扩展
- 您可以定义一个在特定点调用“钩子hook”操作的模板方法,从而只允许在这些点上进行一点点扩展。
- 后果:
- 模板方法是代码重用的基本技术。
- 在类库模板方法尤其重要,因为他们是因式分解的方法(分解)共同行为库类。
- Hook:
- 您可以定义一个在特定点调用“钩子hook”操作的模板方法,从而只允许在这些点上进行一点点扩展。
- 比如添加一些判断类和用户交互,类似这样的动态变化
- 设计原则:依赖倒置(好莱坞原则)
- Don’t call us, we’ll call you.
- 结构:
-
- 实现:
- 通过在名称中添加前缀来标识应该覆盖的操作。
- InJava:
- 最小化基元操作
- 在设计模板方法时,一个重要的目标是最小化子类为了充实算法而必须覆盖的基元操作的数量。
- 需要重写的操作越多,客户得到的任务就越繁琐。
- 比如:
In order to sort objects in a container in Java,you must make the sorted objects
如果要implements interface Comparable, and 必须override compareTo().