随笔分类 -  设计模式

摘要:状态模式:允许对象在内部状态改变时,改变它的行为,对象看起来好像修改了它的类。状态模式将一个类的实例对象的状态封装成为独立的类,并把类的动作委托到代表当前状态的类去实现。这样当对象的状态发生改变时,这个对象就会呈现不同的动作表现。类图:糖果售卖机具有四种状态:没有25分钱状态,有25分钱状态,售出糖... 阅读全文
posted @ 2015-01-16 10:06 wangliyue 阅读(210) 评论(0) 推荐(0)
摘要:组合模式:组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。组合模式让我们能用树形方式创建对象的结构,树里面包含了组合以及个别的对象。使用组合的结构,我们能把相同的操作应用在组合和个别对象上。换句话说,在大多数情况下,我们可以忽略对象组... 阅读全文
posted @ 2015-01-15 17:14 wangliyue 阅读(165) 评论(0) 推荐(0)
摘要:迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。聚合对象可以是数组,也可以是集合等。遍历集合,我们可以使用for循环,foreach循环。遍历数组,可以使用for循环,foreach循环。但是使用上面这两种形式,我们都需要知道聚合对象是数组,还是集合。但是使用了迭代... 阅读全文
posted @ 2015-01-15 17:12 wangliyue 阅读(170) 评论(0) 推荐(0)
摘要:模板方法模式:在一个方法中定义一个算法的骨架,而将这个算法中的一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。冲泡饮料:咖啡的冲泡需要四个步骤 : 1.烧一壶热水 2.用热水冲泡咖啡粉 3.把咖啡倒进杯子中 4.加糖和牛奶 茶的冲泡也需要... 阅读全文
posted @ 2015-01-14 15:21 wangliyue 阅读(159) 评论(0) 推荐(0)
摘要:待记录。 阅读全文
posted @ 2015-01-11 19:55 wangliyue 阅读(90) 评论(0) 推荐(0)
摘要:命令模式:命令模式将发出请求的对象和执行请求的对象解耦,在被解耦的两者之间是通过命令对象进行沟通的,命令对象封装了接受者和一个或者一组动作。遥控器控制房间内的电器:现有一个遥控器现有两排按钮,每排七个,第一排可以控制电器的打开,对应的第二排可以控制电器的关闭。 每个电器都有自己的 打开和关闭的方法。... 阅读全文
posted @ 2015-01-07 10:57 wangliyue 阅读(215) 评论(0) 推荐(0)
摘要:单例模式是最简单,但也是比较常用的模式之一。单例模式:确保一个类只有一个实例对象,并提供一个全局访问点。有一些类的实例对象,我们只需要一个,比如说:线程池,缓存,对话框,处理偏好设置和注册表的对象,日志对象,充当打印机、显卡等设备的驱动程序的对象。事实上,这些类的对象有且只能有一个实例对象,如果制造... 阅读全文
posted @ 2015-01-07 10:56 wangliyue 阅读(133) 评论(0) 推荐(0)
摘要:简单工厂:简单工厂 通过把产生一个实例对象的过程,交给一个简单工厂的类去完成。简单工厂严格来说,算不上是一种设计模式,反而比较像是一种编程习惯。一个披萨店:根据用户的点的披萨类型 ,生产出相应类型的披萨,然后经过烘焙,切割,装盒,返回给用户。类图:披萨店 PizzaStore类: 1 /** 2 ... 阅读全文
posted @ 2015-01-05 20:43 wangliyue 阅读(143) 评论(0) 推荐(0)
摘要:Java I/O系统中的类的设计,大量使用了装饰者模式,所以理解装饰者模式,对于理解I/O流的设计来说,十分重要。装饰者模式:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更具有弹性的替代方案。星巴克咖啡:星巴克提供了四种口味的咖啡:HouseBlend ,DarkRoast,Decaf... 阅读全文
posted @ 2015-01-04 09:44 wangliyue 阅读(259) 评论(0) 推荐(0)
摘要:观察者模式:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。这个模式可以通过 报纸订阅服务的过程进行描述:当订阅者向出版商订阅了某一个杂志之后,只要这个出版商每月出了新的杂志,就会自动把杂志快递给已经向它订阅的用户。这里的出版商就相当于观察者模式中的... 阅读全文
posted @ 2014-12-22 13:44 wangliyue 阅读(189) 评论(0) 推荐(0)
摘要:策略模式:定义了算法族,分别封装起来,让它们之间可以相互替换,此模式让算法的变法独立于使用算法的客户。鸭子游戏:绿头鸭 可以游泳 呱呱叫 可以用翅膀飞 红头鸭 可以游泳 呱呱叫 可以用翅膀飞 橡皮鸭可以游泳 吱吱叫不可以飞 诱饵鸭可以游泳不可叫不可以飞设计原则一:找出应用中可能需要变化之处,把它们独... 阅读全文
posted @ 2014-12-21 21:39 wangliyue 阅读(157) 评论(0) 推荐(0)