
Head First设计模式
yatesChiang
这只是我的学习笔记,仅供复习和记录使用!!!
展开
-
工厂模式
1.简单工厂:一个根据参数创建对象的类 2.工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。 3.依赖倒置原则: 要依赖抽象,不要依赖具体类 4.抽象工厂模式:一个接口中的抽象方法必须被类一一实现。 工厂方法:一个抽象类被子类实现抽象方法。原创 2015-07-05 09:46:43 · 546 阅读 · 0 评论 -
装饰者模式
1.设计原则:类应该对扩展开放,对修改关闭。 2.装饰者模式动态的将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。 3.抽象类可以不实现父类的抽象方法 4.定义一个抽象类Coffee,有一个cost方法,然后让绿茶继承,绿茶的cost是return 3;Mocha继承,cost是1+绿茶.cost,只需要在Mocha的构造方法中传入参数Coffee co; 计算的时候原创 2015-07-05 08:34:31 · 571 阅读 · 0 评论 -
单件模式
1.单件模式是一种用于确保整个应用程序中只有一个类实例且这个实例所占资源在整个应用程序中是共享时的程序设计方法(根据实际情况,可能需要几个类实例)。在某些情况下,这种程序设计方法是很有用处的。 2.代码 public class Singleton { private static Singleton unique; private Singleton(){} pu原创 2015-07-04 10:59:07 · 612 阅读 · 0 评论 -
观察者模式
1.观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。 2.设计原则:为了交互对象之间的松耦合设计而努力。 3.一个主题,若干观察者 在主题里可以注册,删除,通知,观察者只需要实现一个update() 观察者的构造方法中需要有一个主题当参数,来实现注册 当数据改变时,调用notify()方法,使每一个观察者实现update();原创 2015-07-04 20:24:18 · 386 阅读 · 0 评论 -
策略模式
需求:有一款模拟鸭子的游戏,里面有各种鸭子,每一种鸭子的外观都不同,并且所有的鸭子都会游泳,有的鸭子会飞,有的鸭子不会飞。分析:我们要用到OO技术,只需要设计一个超类,并让各种鸭子继承此超类即可。因为鸭子的外观都不同,所以超类中display()方法是抽象的,在子类中实现具体的方法;所有的鸭子都会游泳,只需要在超类中实现swim()方法,继承超类的子类就都会游泳了;飞行这个行为就有点难处理了,如果在原创 2016-07-14 22:10:19 · 776 阅读 · 0 评论