摘要: 既定访问者模式类图: 假设现在需求要扩展数据结构,增加一种具体元素,男与女之外的一种不明物体,我们暂时把它称为“怪兽”,在既有访问者模式的架构下,应该怎样?首先增加一个Bruce类,实现Person接口。最麻烦的是要修改访问者接口及其所有具体访问者! 因为Visit方法中没有包含访问Bruce对象的行为,因此我们被迫要去手工更改Visitor(包括抽象的,具体的),在其中添加有关Bruce对象 的行为,这严重违反了“开放-封闭”原则。究其原因在于目前的结构下,被访问对象与访问对象互相依赖,自然不利于分离变化,必须去掉一层依赖关系。 我们尝试把Visitor对Person(元素)的依赖关... 阅读全文
posted @ 2013-03-01 17:55 lpfuture 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将 该对象恢复到原先保存的状态类型:行为类类图:备忘录模式的结构发起人:记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。备忘录:负责存储发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。管理角色:对备忘录进行管理,保存和提供备忘录。 阅读全文
posted @ 2013-03-01 17:45 lpfuture 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 17:40 lpfuture 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 17:37 lpfuture 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 16:16 lpfuture 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 优点: 1.模板方法模式通过把不变的行为搬移到超类,去除了子类中的重复代码。 2.子类实现算法的某些细节,有助于算法的扩展。 3.通过一个父类调用子类实现的操作,通过子类扩展增加新的行为,符合“开放-封闭原则”。缺点: 每个不同的实现都需要定义一个子类,这会导致类的个数的增加,设计更加抽象。适用场景: 1.在某些类的算法中,用了相同的方法,造成代码的重复。 2.控制子类扩展,子类必须遵守算法规则。 阅读全文
posted @ 2013-03-01 16:12 lpfuture 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 62-63=1 移动一位数,使等式成立! 阅读全文
posted @ 2013-03-01 15:49 lpfuture 阅读(433) 评论(5) 推荐(0) 编辑
摘要: 1,2,3,4,5五个数组成一个两位数和一个三位数,要使乘积最大,应该是哪两个数,要使乘积最小呢? 1 <?php 2 $min=10000; 3 $max=0; 4 $max_a = 0; 5 $max_b = 0; 6 $min_a = 0; 7 $min_b = 0; 8 for($a=1;$a<6;$a++){ 9 for($b=1;$b<6;$b++){10 if($b!=$a){11 for($c=1;$c<6;$c++){12 if($c!=$b&&$c!=$a){13 ... 阅读全文
posted @ 2013-03-01 15:43 lpfuture 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 14:49 lpfuture 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 14:43 lpfuture 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 14:40 lpfuture 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 14:25 lpfuture 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:38 lpfuture 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:34 lpfuture 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:28 lpfuture 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:22 lpfuture 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:18 lpfuture 阅读(117) 评论(0) 推荐(0) 编辑