组合模式
摘要:组合模式允许你将对象组合成树形结构来表现“整体\部分”层次结构,组合能让用户以一致的方式来处理个别对象和组合对象。 以菜单为例,因为子菜单的存在,所以当遍历菜单时,会遇到个别对象(菜单项)和对象组合(子菜单)。 还好有组合模式。。。 现在创建一个组件接口来作为菜单和菜单项的共同接口,让我们...
阅读全文
posted @
2014-03-26 12:48
花爱春
阅读(162)
推荐(0)
状态模式
摘要:状态模式允许对象在内部状态改变时改变它的行为,对象看起来像是修改了它的类。 状态模式将状态封装成独立的类,并将动作委托到代表当前状态的对象。 “看起来像是修改了它的类”:从客户的视角来看,如果说你使用的对象,能够完全改变它的行为,那么你会觉得,这个类是从别的地方实例化来的。然而实际上,这是在...
阅读全文
posted @
2014-03-25 12:54
花爱春
阅读(155)
推荐(0)
迭代器模式
摘要:迭代器模式提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。 在设计中使用迭代器模式的影响:如果你有一个统一的方法访问聚合中的每一个对象,你就可以编写多态的代码和这些聚合搭配(当我们写了一个需要以迭代器当做参数的方法时,其实就是在使用多态的迭代。也就是说,我们所写出的代码,...
阅读全文
posted @
2014-03-24 12:51
花爱春
阅读(204)
推荐(0)
对象和数据结构
摘要:这两个概念还是比较抽象的,幸好最近看了一些相关的书,怕忘了,索性记下来。。。 主要说说两者的差异:对象把数据隐藏于抽象之后,曝露操作数据的函数。数据结构曝露其数据,不提供有意义的函数。可以看出,两者是截然对立的,这说明了对象与数据结构之间的二分原理:过程式代码(使用数据结构的代码)便于在不改动...
阅读全文
posted @
2014-03-13 19:48
花爱春
阅读(679)
推荐(0)
模板方法模式
摘要:模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 这个模式是用来创建一个算法的模板。模板就是一个方法,这个方法将算法定义成一组步骤,其中的任何步骤都可以是抽象的,由子类负责实现。这可以保持算法的...
阅读全文
posted @
2014-03-07 12:44
花爱春
阅读(227)
推荐(0)
最少知识原则
摘要:该原则也叫作迪米特法则,还是这个名字高大上。。。 通俗的来讲,就是一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。该原则还有一个更简单的定义:只与直接的朋友通信。首先来解释一...
阅读全文
posted @
2014-03-06 12:50
花爱春
阅读(1503)
推荐(0)
适配器模式
摘要:适配器模式:将一个类的接口转换成客户期望的另一个接口。 客户使用适配器的过程: a. 客户通过目标接口(Duck)调用适配器(TurkeyAdapter)的方法,对适配器发出请求。 b. 适配器(TurkeyAdapter)使用被适配者接口(Turkey)把请求(quack())转换成被支...
阅读全文
posted @
2014-03-03 12:37
花爱春
阅读(146)
推荐(0)