分类:
了解了这么多模式,在学习的过程中也设计到了很多行为模式,至于有哪些?可以一一道来。
行为包括这么多,那么到底什么是行为模式呢?
定义:
行为模式是对在不同的对象之间划分责任和算法的抽象化。行为模式不仅仅是关于类和对象的,而且是关于它们之间的相互作用的。可分为类的行为模式和对象的行为模式。
类的行为模式:类的行为模式使用继承关系在几个类之间分配行为
对象的行为模式:使用对象的聚合来分配行为
模板方法模式:
看到这个模式第一感觉就是照葫芦画瓢的一个模式,应该算是最常用的一种模式吧!最近临近毕业,很喜欢那些在外打工的同胞回来看我,因为回来就可以请我吃大餐啊!对于吃饭,当然也有固定的模式,点单-吃东西-买单。就这么简单的一个流程呗!关键就在于点什么餐了 点单,买单的过程是重复的,所有重复的代码可以上升到父类,而不是让每个点餐都重复这个过程。这就是所谓的模仿方法模式。
定义:
定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
结构图:
基本代码:
AbstractClass是抽象类,其实也就是一抽象模板,定义并实现了一个模板方法。