来自《Head+First+设计模式》
OO基础
抽象
封装
多态
继承
OO原则
封装变化
多用组合少用继承
针对接口编程不针对实现编程
为交互对象之间的松耦合设计而努力
类应该对拓展开放,对修改关闭
要依赖抽象,不要依赖具体类
OO模式
策略模式: 定义了算法族,分别封装起来,让它们之间可以相互替换,算法的变化独立于使用算法的客户 。
观察者模式: 在对象之间定义一对多的依赖,这样一来,当一个对象改变它的状态,依赖它的对象都会收到通知,并自动更新。
装饰模式:动态地将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。
工厂方法模式:定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
抽象工厂模式:提供一个接口,用于创建相关或依赖对象的家族,而不需要明确指定具体的类。
大多数模式都着眼于软件变化的主题
大多数的模式都允许系统局部改变独立于其它部分
我们常把系统中变化的部分抽出来封装