-
模式的秘密---模板方法模式——总结 一、模板方法模式的实现要素: 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类更大的灵活性。最后将方法汇总构成一个不可改变的模板方法。 二、从类的角度看: (1)抽象基类 1、基本方法。 2、抽象方法【只知道具体原则,而不知道实现细节,需要将其延迟到子类中实现的一些步骤】。 3、可选钩子(Hook,钩子函数,提供一个默认或空的实现。具体的子类可以自行决定是否挂钩以及如何挂钩)。 4、Template方法(final 使其不能被子类所覆写 模板方法模式要遵循的原则:子类可以替换掉父类中的可变逻辑,但不能改变整体逻辑结构))。 (2)具体子类 1、实现基类中的抽象方法。 2、覆盖钩子方法。 三、模板方法的优点: (1)封装性好。 (2)复用性好。 (3)屏蔽细节。 (4)便于维护。 四、模板方法的缺点: (1)继承限制(Java语言是单继承语言),单继承会使得更多情况不可用,新类引入困难。 五、模板方法模式的适用场景: (1)算法或操作遵循相似的逻辑。 (2)重构时(把相同的代码抽取到父类中)。 (3)重要、复杂的算法,核心算法设计为模板方法。查看全部
-
适应场景 1 步骤抽取 2 重构代码 3 重要、复杂的算法,核心算法设计为模版查看全部
-
模版方法声明成 public final private方法是基本逻辑 protect abstract 方法是可扩展方法 钩子 好莱坞原则查看全部
-
模板方法要求,声明的共同的方法为final,也就不让子类继承和破坏,子类可以替换掉父类中可变的逻辑,但是不能改变整体的逻辑结构,这个原则称之为好莱坞原则,也就是好莱坞的演员可以为娱乐公司提供一些业务,但是不能改变娱乐公司的运行规则。查看全部
-
模式的秘密---模板方法模式——总结 一、模板方法模式的实现要素: 准备一个抽象类,将部分逻辑以具体方法的形式实现,然后声明一些抽象方法交由子类实现剩余逻辑,用钩子方法给予子类更大的灵活性。最后将方法汇总构成一个不可改变的模板方法。 二、从类的角度看: (1)抽象基类 1、基本方法。 2、抽象方法【只知道具体原则,而不知道实现细节,需要将其延迟到子类中实现的一些步骤】。 3、可选钩子(Hook,钩子函数,提供一个默认或空的实现。具体的子类可以自行决定是否挂钩以及如何挂钩)。 4、Template方法(final 使其不能被子类所覆写 模板方法模式要遵循的原则:子类可以替换掉父类中的可变逻辑,但不能改变整体逻辑结构))。 (2)具体子类 1、实现基类中的抽象方法。 2、覆盖钩子方法。 三、模板方法的优点: (1)封装性好。 (2)复用性好。 (3)屏蔽细节。 (4)便于维护。 四、模板方法的缺点: (1)继承限制(Java语言是单继承语言),单继承会使得更多情况不可用,新类引入困难。 五、模板方法模式的适用场景: (1)算法或操作遵循相似的逻辑。 (2)重构时(把相同的代码抽取到父类中)。 (3)重要、复杂的算法,核心算法设计为模板方法。查看全部
-
末班方法模式的适用场景查看全部
-
模版方法定义为final查看全部
-
模板模式的应用,只有日志分析的时候实现不一样所以抽取出来具体实现。查看全部
-
模板方法模式的适用场景: 总结:只要有一些业务逻辑中大致的执行情况是相同的,那么就可以整个流程整合在基类中,然后再在子类中具体实现一些特定的需求查看全部
-
模板方法的实现要素查看全部
-
具体子类中,可以可选的覆盖父类中的钩子方法查看全部
-
具体子类: 1:实现基类的抽象方法查看全部
-
基类中的模板方法:模板方法要设置成为finla,使得子类不能修改这个方法。原因是因为模板模式是要让子类自定义一些特定的方法,而不改变算法的整体结构查看全部
-
抽象基类中的钩子函数是让子类自己决定要不要调用基类中的某些方法查看全部
-
模板模式有两个要素: 1.抽象基类:抽象基类中实现了算法要实现的框架,该框架中决定了一些方法的调用顺序,然后有些基本方法会在基类中实现,然后一些有特定要求的方法设置成为抽象方法,在具体的子类中实现,基类中还有一些钩子函数(作用是让子类决定是否要挂载基类的某些方法和如何挂载这些方法) 2.具体实现子类:子类中实现基类为实现的抽象方法,还可以可选的覆盖一些基类的钩子方法查看全部
举报
0/150
提交
取消