(P9)
须要足够简单的逻辑,才能够在代码级别上违反单一职责“原则”;
须要类中方法数量足够少,才能够在方法级别上违反“单一职责原则”;
(P14)
“开放-封闭”原则是面向对象开发中全部设计原则的核心;
(P15)
“开发-封闭”原则的定义是 —— 程序的实体对象(模块、类、函数等)应该能够进行扩展,但不该该能够修改;
(P17)
只依赖于抽象,实现“开放-封闭”原则的核心思想就是面向抽象编程,而不是面向具体编程,由于抽象相对来讲是稳定的;
(P20)
实现“开放-封闭”原则的关键就是实现抽象化,而且从抽象化得出具体化的实例;
(P21)
在编程中,用哪一种语言来编写程序并不重要,只要编写代码时考虑的是如何针对抽象进行编程而不是针对细节编程 —— 程序中全部的依赖关系都终止于抽象类或者接口,这才是真正的面向对象设计;
(P24)
合成和聚合都是关联关系的特殊种类,合成本质上是值的聚合,聚合是引用的聚合;
在面向对象设计中,有两种基本的办法能够实现复用:第一种是经过合成/聚合,即合成/聚合复用原则(CARP);第二种就是经过继承;
(P29)
“迪米特法则”的定义 —— 若是两个类之间没必要直接通讯,则这两个类不该该发生直接的相互做用。若是其中的一个类须要调用另外一个类的某个方法,能够经过第三方转发这个调用;
类之间的耦合越弱,越有利于复用;
(P39)
Java 中没有虚函数,也能够说类的每个函数都是虚函数,均可以来重写 (Override);
(P43)
“工厂方法模式”也有其缺点:每增长一个产品,就要相应地添加一个产品工厂类,增长了额外的开发量;
(P51)
经过“反射”技术可以避免 If 和 Switch 使用的缺点,使得程序的灵活性有大幅度的提升;
(P52)
“抽象工厂”接口肯定了能够被建立的产品集合,新种类产品的加入须要扩展抽象工厂接口,这就涉及到了接口自己和全部实现类的改变;
(P53)
实践是学习编程的最好方法;
(P61)
“==” 对于值类型会判断其值是否相等,而对于引用类型则会判断引用(内存地址)是否相同,也就是判断是不是同一个对象;
对于引用类型,“==” 运算符只是调用了对象的 equals 方法;
(P75)
“建造者模式”是面向对象中“多态”特性的一个很是好的应用;
(P169)
抽象方法是必须被子类重写的,否则编译器会报错;
(P264)
通常状况下,“结构型模式”都是使用继承机制将接口进行组合以及实现;编程