head first学习笔记

1.找出应用中可能变化的之处,把他们独立出来,不要和那些不需要变化的代码混在一起。
结果:由于代码变化引起的不经意变化减少,系统弹性减少。

2.针对接口编程,而不是针对实现(具体)编程。
使用委托,而不是继承。 动态设定行为。
类之间的关系可以是 "is a"-是一个,也可以是"has a",有一个。
多用组合,少用继承。

jdk中最常用的模式观察者模式
观察者模式定义了对象之间的一对多依赖关系,当依赖对象的状态改变,其他对象都会知悉并自动更新。

3.使交互对象之间松耦合

java.util.Observable 是一个类,而不是一个接口。它把setChanged方法设为protected,除非使用继承,否则不能将它组合进来,违反了oo规则"多用组合,少用继承"

4.类应该对修改关闭,对扩展开放。
装饰者模式:动态的将责任附加到对象上,比继承更有弹性。
但是会引入很多的小类。

工厂模式
定义了一个创建对象的接口,由子类决定要创建的对象是哪一种类型。

5.依赖倒置原则
要依赖抽象,不要依赖具体类。
如何做到依赖倒置呢,有以下原则:
变量不可以有具体类的应用,用工厂方法解决;
不要让类派生自具体类;
不要覆盖基类中实现的方法;(基类中的方法应该在所有子类中共享)

抽象工厂模式
提供一个接口用于创建相关和依赖对象的家族,而不需要指明具体的类。

抽象工厂 vs 工厂
抽象工厂定义了一个生产一组产品的接口,而这个接口的每个方法负责创建一个产品。



猜你喜欢

转载自makeyouown.iteye.com/blog/1133196