《设计模式之禅》 - 书摘精要

(P2) 
BO (Business Object) 业务对象;
BL (Business Logic) 业务逻辑;

(P13) 如果子类不能完全实现父类的方法,或者父类的某些方法在于子类中已经发生“畸变”,则建议断开父子继承关系,采用依赖、聚合、组合等关系代替继承;

(P24) 在 Java 中,只要定义变量就必然要有类型,一个变量可以有两种类型:表面类型和实际类型,表面类型是在定义的时候赋予的类型,实际类型是对象的类型;

(P25) 
依赖的三种写法:
1. 构造函数传递依赖对象;
2. Setter 方法传递依赖对象;
3. 接口声明依赖对象;

(P26) 
依赖倒置原则最佳实践:
1. 每个类尽量都有接口或抽象类,或者抽象类和接口两者都具备;
2. 变量的表面类型尽量是接口或抽象类;
3. 任何类都不应该从具体类派生;
4. 尽量不要覆写基类方法;
5. 结合里氏替换原则使用;

(P27) 
依赖倒置原则是6个设计原则中最难以实现的原则,它是实现开闭原则的重要途径,依赖倒置原则没有实现,就别想实现对扩展开放,对修改关闭。在项目中,大家只要记住是“面向接口编程”就基本上抓住了依赖倒置原则的核心;

(P42) 迪米特法则要求类“羞涩”一点,尽量不要对外公布太多的 public 方法和非静态的 public 变量,尽量收敛,多用 private 、 package-private 、 protected 等访问权限;

(P71) 工厂方法模式是 new 一个对象额的替代品,所以在所有需要生成对象的地方都可以使用;

(P73) 简单工厂模式 (Simple Factory Pattern) 也叫做静态工厂模式;

(P84) 
有 N 个产品类,在抽象工厂类中就应该有 N 个创建方法;

有 M 个产品等级就应该有 M 个实现工厂类,在每个实现工厂中,实现不同产品族的生产任务;

(P141) 不通过 new 关键字产生一个对象,而是通过对象复制来实现的模式就叫原型模式;

(P145) 深拷贝和浅拷贝建议不要混合使用,特别是在涉及类的继承时,父类有多个引用的情况就非常复杂,建议的方案是深拷和浅拷贝分开实现;

(P166) 用字符串来传递命令并不是一个非常好的方案;

你可能感兴趣的:(设计模式)