-
咖啡测试代码的实现查看全部
-
模版方法(prepareBeverageTemplate)的代码查看全部
-
用 final 关键字阻止子类对父类模版方法的修改查看全部
-
咖啡制备的具体实现查看全部
-
iMooc 提神饮料配置模版查看全部
-
延迟到让子类去实现查看全部
-
模板方法模式的实现要素: 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类更大的灵活性。最后将方法汇总构成一个不可改变的模板方法。 从类的角度看: (1)抽象基类 1、基本方法 2、抽象方法【只知道具体原则,而不知道实现细节,需要将其延迟到子类中实现的一些步骤】 3、可选钩子(Hook,钩子函数,提供一个默认或空的实现。具体的子类可以自行决定是否挂钩以及如何挂钩) 4、Template方法(final 使其不能被子类所覆写 模板方法模式要遵循的原则: 子类可以替换掉父类中的可变逻辑,但不能改变整体逻辑结构)) (2)具体子类 1、实现基类中的抽象方法 2、覆盖钩子方法 模板方法的优点: (1)封装性好 (2)复用性好 (3)屏蔽细节 (4)便于维护 模板方法的缺点: (1)继承限制(Java语言是单继承语言) 单继承会使得更多情况不可用,新类引入困难。 模板方法模式的适用场景: (1)算法或操作遵循相似的逻辑 (2)重构时(把相同的代码抽取到父类中) (3)重要、复杂的算法,核心算法设计为模板方法查看全部
-
钩子函数的使用,使固定的父类模版显得更加灵活,因为并不是所有子类的过程都遵循着父类的规则。而存在的这些些许的差异,因为钩子函数的引入,使得子类的过程可以和父类的过程存在变通性查看全部
-
方法优点查看全部
-
模板方法使用场景查看全部
-
模板方法实现要素查看全部
-
模板模式查看全部
-
模板方法适用场景查看全部
-
总结:模板方法模式查看全部
-
钩子函数:提供一个默认的或者空的实现。 具体的子类可以自行决定是否挂钩以及如何挂钩。 也就是提供一个方法,子类想更改就更改,不更改就走默认的。查看全部
举报
0/150
提交
取消