摘要: 迭代器模式:提供一种方法顺序来访问一个聚合对象中的各个元素,而又不暴露其内部的表示。设计一个打印菜单的系统有两种菜单:PancakeHouseMenu和DinerMenu,写一个迭代器接口:package cn.iterator.demo;/** * 迭代器接口 * * @author wy * ... 阅读全文
posted @ 2014-01-06 14:40 wyang0126 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类。模板方法使得子类在不改变算法结构的情况下,重新定义算法中的某些步骤。贴上代码:模板类:package cn.template.demo;/** * 模板:其中boilWater()和pourInCup() 方法是共有的, brew... 阅读全文
posted @ 2014-01-03 09:37 wyang0126 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 适配器模式:将一个类的接口,转换成客户所期望的另一个接口,适配器让原本接口不兼容的类可以合作无间。package cn.adapter.demo;/** * 鸭子接口:会quack叫和飞 * @author wy * */public interface Duck { public void qua... 阅读全文
posted @ 2013-12-30 16:20 wyang0126 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 单例模式 确保一个类只有一个实例,并提供一个全局访问点。最简单的单例模式,不适用于多线程下使用package demo;/** * 同步情况下使用, 多线程下可能会产生多个Singleton实例 * * @author wy * */public class Singleton { privat... 阅读全文
posted @ 2013-12-26 14:44 wyang0126 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 今天打算吧junit整合到SSH框架中,因为之前已经整合过一次了,所以感觉应该没什么问题,主要就是导入一个org.springframework.test-3.0.5.RELEASE.jar和junit.jar,然后直接写测试文件:import static org.junit.Assert.ass... 阅读全文
posted @ 2013-12-23 16:26 wyang0126 阅读(4011) 评论(0) 推荐(0) 编辑
摘要: 观察者模式:定义了对象之间的一对多的依赖,这样一来,当一个对象改变状态时,他的所有依赖者都会收到通知并自动更新;系统描述:设计一个气象站,每当温度变化时,显示温度的布告板就会更新;主题接口:Subject.javapackage cn.weather.demo;/*** 主题接口* @author ... 阅读全文
posted @ 2013-12-23 14:54 wyang0126 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式:动态的将职责附加到对象上。系统描述:购买咖啡的系统,购买咖啡时可以加入各种调料,然后结账的时候算上咖啡和调料的钱的总和。总的饮料抽象类Beverage.javapackage cn.beverage.demo;/** * 饮料抽象类 * * @author wy * */public... 阅读全文
posted @ 2013-12-23 13:56 wyang0126 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 策略模式定义了算法簇,分别封装起来,让他们可以互相替换,此模式让算法的变化独立于使用算法的使用者。系统描述:各种不同的鸭子,有的可以飞,有点不可以飞,不同的鸭子叫声也不一定相同。定义一个鸭子的超类Duck,其他具体的鸭子继承该超类,将鸭子的飞的行为和叫的行为分别封装到接口中鸭子的超类:package... 阅读全文
posted @ 2013-12-18 15:48 wyang0126 阅读(147) 评论(0) 推荐(0) 编辑
摘要: OO基础:抽象、封装、多态、继承OO原则:封装变化,多用组合、少用继承,针对接口编程、不针对实现编程为交互对象之间的松耦合设计而努力对扩展开放,对修改关闭依赖抽象,不要依赖具体类最少知识原则一个类应该只有一个引起变化的原因(尽量让每个类保持单一责任) 阅读全文
posted @ 2013-12-18 09:45 wyang0126 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 创造㆒个新函数,根据这个函数的意图来给它命名(以它「做什么」来命名,而不是以它「怎样做」命名)。好处:首先,如果每个函数的粒度都很小,那么函数被复用的机会就更大;其次,这会使高层函数读起来就想一系列注释;再次,如果函数都是细粒度,那么函数的覆写也会更容易些。将提炼出的代码从源函数复制到新建的明白函数... 阅读全文
posted @ 2013-12-11 16:12 wyang0126 阅读(169) 评论(0) 推荐(0) 编辑