随笔分类 - Head First 设计模式
摘要:工厂方法模式定义:定义了一个创建对象的接口,但由于子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类; “依赖倒置”原则:代码中减少了对具体类的依赖。 定义披萨抽象类 public abstract class Pizza { public String name; public Stri
阅读全文
摘要:单例模式定义:确保一个类只有一个实例,并提供线程安全的访问点。 单例模式定义:确保一个类只有一个实例,并提供线程安全的访问点。 以下介绍6中线程安全的单例模式 立即加载模式/饿汉模式 通过反射的方式可以获得多个实例 立即加载模式/饿汉模式 通过反射的方式可以获得多个实例 public class S
阅读全文
摘要:模板方法模式定义:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法是的子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 模板方法定义了算法的实现步骤,把这些步骤放在子类中实现; 模板方法为我们提供了代码复用的重要技术; 模板方法的抽象类可以定义具体方法; 抽象方法由子类
阅读全文
摘要:装饰者定义:动态的将责任附加到对象上,想要扩展功能,装饰者提供有别于继承的另一种选择。 解决继承滥用的问题,使用组合的方式在运行时装饰类; 对扩展开放,对修改关闭; 继承属于扩展形式之一,但是也可以使用委托的方式实现扩展; 在设计当中,应该允许行为可以被扩展,而无须修改现有的代码; 组合与委托可以用
阅读全文
摘要:命令模式定义:将“请求”封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象。 命令模式将发出请求的对象(RemoteControl遥控器类)和执行请求的对象(点灯类)解耦; 在被解耦的对象之间通过Command对象进行沟通(例如LightCommand封装Light类的开灯与关灯命令);
阅读全文
摘要:观察者模式定义:定义了对象之间一对多的依赖,这样一来,当一个对象状态发生变化时,它所有的依赖者都会收到通知并自动更新。 个人理解:主题发生变化时,把变化情况及时通知到订阅了主题的各个观察者(订阅者) 观察者模式设计方式让主题 与 观察者 之间实现了松耦合,能够适应变化。 观察者模式定义了对象之间一对
阅读全文