01 2015 档案
摘要:状态模式:允许对象在内部状态改变时,改变它的行为,对象看起来好像修改了它的类。状态模式将一个类的实例对象的状态封装成为独立的类,并把类的动作委托到代表当前状态的类去实现。这样当对象的状态发生改变时,这个对象就会呈现不同的动作表现。类图:糖果售卖机具有四种状态:没有25分钱状态,有25分钱状态,售出糖...
阅读全文
摘要:组合模式:组合模式允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。组合模式让我们能用树形方式创建对象的结构,树里面包含了组合以及个别的对象。使用组合的结构,我们能把相同的操作应用在组合和个别对象上。换句话说,在大多数情况下,我们可以忽略对象组...
阅读全文
摘要:迭代器模式:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露其内部的表示。聚合对象可以是数组,也可以是集合等。遍历集合,我们可以使用for循环,foreach循环。遍历数组,可以使用for循环,foreach循环。但是使用上面这两种形式,我们都需要知道聚合对象是数组,还是集合。但是使用了迭代...
阅读全文
摘要:模板方法模式:在一个方法中定义一个算法的骨架,而将这个算法中的一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。冲泡饮料:咖啡的冲泡需要四个步骤 : 1.烧一壶热水 2.用热水冲泡咖啡粉 3.把咖啡倒进杯子中 4.加糖和牛奶 茶的冲泡也需要...
阅读全文
摘要:命令模式:命令模式将发出请求的对象和执行请求的对象解耦,在被解耦的两者之间是通过命令对象进行沟通的,命令对象封装了接受者和一个或者一组动作。遥控器控制房间内的电器:现有一个遥控器现有两排按钮,每排七个,第一排可以控制电器的打开,对应的第二排可以控制电器的关闭。 每个电器都有自己的 打开和关闭的方法。...
阅读全文
摘要:单例模式是最简单,但也是比较常用的模式之一。单例模式:确保一个类只有一个实例对象,并提供一个全局访问点。有一些类的实例对象,我们只需要一个,比如说:线程池,缓存,对话框,处理偏好设置和注册表的对象,日志对象,充当打印机、显卡等设备的驱动程序的对象。事实上,这些类的对象有且只能有一个实例对象,如果制造...
阅读全文
摘要:简单工厂:简单工厂 通过把产生一个实例对象的过程,交给一个简单工厂的类去完成。简单工厂严格来说,算不上是一种设计模式,反而比较像是一种编程习惯。一个披萨店:根据用户的点的披萨类型 ,生产出相应类型的披萨,然后经过烘焙,切割,装盒,返回给用户。类图:披萨店 PizzaStore类: 1 /** 2 ...
阅读全文
摘要:Java I/O系统中的类的设计,大量使用了装饰者模式,所以理解装饰者模式,对于理解I/O流的设计来说,十分重要。装饰者模式:动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更具有弹性的替代方案。星巴克咖啡:星巴克提供了四种口味的咖啡:HouseBlend ,DarkRoast,Decaf...
阅读全文