养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

23种设计模式之模板设计模式

时间:2024-11-10 18:59:32

1.喋碾翡疼模板方法模式(TemplateMethodPattern),又叫模板模式(Template霸烹钟爷Pattern),在一个抽象类公开定义了执行它的模板。它的子类可以俺需要重写方法实现,但调用将以抽象类中定义的方式进行;2.简单说,模板方法模式定义一个操作中的算法的骨架,而降一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤;3.这些类型的设计模式属于行为型模式。

23种设计模式之模板设计模式

角色及职责

1、模板喋碾翡疼模式主要是由抽象模板(AbstarctTemplate)角色和具体的模板(ConcreteT髫潋啜缅emplate)角色组成。1.抽象模板(AbstractTemplate):定义了一个或多个抽象操作,以便让子类实现。这些抽象操作叫做基本操作,它们是一个顶级逻辑的组成步骤;定义并实现了一个模板方法。这个模板方法一般是一个具体方法,它给出了一个顶级逻辑的骨架,而逻辑的组成步骤在相应的抽象操作中,推迟到子类实现。顶级逻辑也有可能调用一些具体方法。2.具体模板(ConcreteTemplate):实现父类所定义的一个或多个抽象方法,它们是一个顶级逻辑的组成步骤;每一个抽象模板角色都可以有任意多个具体模板角色与之对应,而每一个具体模板角色都可以给出这些抽象方法(也就是顶级逻辑的组成步骤)的不同实现,从而使得顶级逻辑的实现各不相同。

2、以下将以不同事务放入冰箱为例冰箱类

23种设计模式之模板设计模式

3、大象具体实现类

23种设计模式之模板设计模式

4、猪具体实现类

23种设计模式之模板设计模式

5、测试类

23种设计模式之模板设计模式

6、执行结果为

23种设计模式之模板设计模式

钩子方法

1、在模板方法模式的父类中,我们可以定义一个方法,它默认不做任何事情,子类可以视情况要粲茸锿枋不要覆盖,该方法称为"钩子"。

2、上述案例把猪和大象放入了冰箱,此时,我需要看一下它们的状况,并且不关冰箱门,步骤将忽略第二步和第三步冰箱抽象类

23种设计模式之模板设计模式

3、具体的实现子类

23种设计模式之模板设计模式

4、具体的实现子类

23种设计模式之模板设计模式

5、具体的实现子类

23种设计模式之模板设计模式

6、测试类

23种设计模式之模板设计模式

7、执行结果

23种设计模式之模板设计模式

优缺点

1、优点1.扩展性好,对不变的代码进行封装,对可变的进行扩展;2.可维护性好,因为将公疤噜呶买共代码进行了提取,使用的时候直接调用即可。

2、缺点每一个不同的实现都需要一个子类来实现,导致类的个数增加,会使系统变得复杂。

3、使用场景1.有多个子类共有逻辑相同的方法;2.重要的、复杂的方法,可以考虑作为模板方法。

© 一点知识