
设计模式解析
文章平均质量分 85
设计模式解析,包括23个著名设计模式的定义,特点,适用性,以及示例代码,等。
haozlee
多年linux开发经验,熟悉c++,python。个人主页:https://leehao.me
展开
-
《Head First设计模式》读书笔记(1)
这段时间看《Head First设计模式》,今晚按第一章的描述写了个测试程序。程序代码以下:===================================Duck.javapublicabstractclass Duck { public FlyBehaviorflyBehavior; public QuackBehaviorqua原创 2007-10-09 07:27:00 · 2151 阅读 · 1 评论 -
设计模式之策略(Strategy)模式
Strategy模式是一种行为型设计模式,它将算法一个个封装起来,在某一时刻能够互换地使用其中的一个算法。从概念上看,所有这些算法完成的都是相同的工作,只是实现不同而已。动机在开发中,我们常常会遇到概念上相同,处理方法不同的任务,例如,对一件商品使用不同的税额计算方法来计算其价格。一般来说,有以下的方法来处理: 复制和粘贴(一份代码具有两个版本,维护成本大)使用switch或者if语句,用一个变原创 2015-08-26 19:51:24 · 4244 阅读 · 2 评论 -
封装算法: 模板方法(Template Method)模式
template method(模板方法)模式是一种行为型设计模式,它在一个方法中定义了算法的骨架(这个方法被称为template method,模板方法),并将算法的具体步骤放到具体的子类中去实现。template method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。需要指出的是,这里所说的template并不是c++中的模板。适用性算法的骨架事先已确定,只是算法的某些步骤原创 2015-08-24 14:24:52 · 2374 阅读 · 0 评论 -
组合(Composite)模式
定义Composite模式是一种结构型设计模式,它将对象组合成树形结构以表示“部分-整体“的层次结构,并使用户对单个对象和组合对象的使用具有一致性。动机当处理树形结构的数据时,我们常常需要区别对待叶子结点和内部结点,这使得代码更加复杂,以至于容易出错。因此,如果有一种方法,可以使我们可以统一处理叶子结点和内部结点,那么,对于我们提高代码的质量是十分有帮助的。 Composite模式正是这样一种设计原创 2015-08-24 21:27:48 · 1255 阅读 · 0 评论