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