auto commit
This commit is contained in:
parent
16b568593e
commit
bf5c188043
15
notes/重构.md
15
notes/重构.md
|
@ -668,7 +668,7 @@ Hide Delegate 有很大好处,但是它的代价是:每当客户要使用受
|
||||||
|
|
||||||
将该数据赋值到一个领域对象中,建立一个 Oberver 模式,用以同步领域对象和 GUI 对象内的重复数据。
|
将该数据赋值到一个领域对象中,建立一个 Oberver 模式,用以同步领域对象和 GUI 对象内的重复数据。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//e024bd7e-fb4e-4239-9451-9a6227f50b00.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//e024bd7e-fb4e-4239-9451-9a6227f50b00.jpg" width=""/> </div><br>
|
||||||
|
|
||||||
## 7. 将单向关联改为双向关联
|
## 7. 将单向关联改为双向关联
|
||||||
|
|
||||||
|
@ -739,7 +739,7 @@ public 字段应当改为 private,并提供相应的访问函数。
|
||||||
|
|
||||||
类中有一个数值类型码,但它并不影响类的行为,就用一个新类替换该数值类型码。如果类型码出现在 switch 语句中,需要使用 Replace Conditional with Polymorphism 去掉 switch,首先必须运用 Replace Type Code with Subcalss 或 Replace Type Code with State/Strategy 去掉类型码。
|
类中有一个数值类型码,但它并不影响类的行为,就用一个新类替换该数值类型码。如果类型码出现在 switch 语句中,需要使用 Replace Conditional with Polymorphism 去掉 switch,首先必须运用 Replace Type Code with Subcalss 或 Replace Type Code with State/Strategy 去掉类型码。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//27c2e0b3-8f95-453d-bedc-6398a8566ce9.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//27c2e0b3-8f95-453d-bedc-6398a8566ce9.jpg" width="500"/> </div><br>
|
||||||
|
|
||||||
## 14. 以子类取代类型码
|
## 14. 以子类取代类型码
|
||||||
|
|
||||||
|
@ -747,7 +747,7 @@ public 字段应当改为 private,并提供相应的访问函数。
|
||||||
|
|
||||||
有一个不可变的类型码,它会影响类的行为,以子类取代这个类型码。
|
有一个不可变的类型码,它会影响类的行为,以子类取代这个类型码。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//c41d3977-e0e7-4ee4-93e1-d84f1ae3e20e.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//c41d3977-e0e7-4ee4-93e1-d84f1ae3e20e.jpg" width="600"/> </div><br>
|
||||||
|
|
||||||
## 15. 以 State/Strategy 取代类型码
|
## 15. 以 State/Strategy 取代类型码
|
||||||
|
|
||||||
|
@ -757,7 +757,7 @@ public 字段应当改为 private,并提供相应的访问函数。
|
||||||
|
|
||||||
和 Replace Type Code with Subcalsses 的区别是 Replace Type Code with State/Strategy 的类型码是动态可变的,前者通过继承的方式来实现,后者通过组合的方式来实现。因为类型码可变,如果通过继承的方式,一旦一个对象的类型码改变,那么就要改变用新的对象来取代旧对象,而客户端难以改变新的对象。但是通过组合的方式,改变引用的状态类是很容易的。
|
和 Replace Type Code with Subcalsses 的区别是 Replace Type Code with State/Strategy 的类型码是动态可变的,前者通过继承的方式来实现,后者通过组合的方式来实现。因为类型码可变,如果通过继承的方式,一旦一个对象的类型码改变,那么就要改变用新的对象来取代旧对象,而客户端难以改变新的对象。但是通过组合的方式,改变引用的状态类是很容易的。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//81fd1d6f-a3b2-4160-9a0a-1f7cb50ba440.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//81fd1d6f-a3b2-4160-9a0a-1f7cb50ba440.jpg" width="800"/> </div><br>
|
||||||
|
|
||||||
## 16. 以字段取代子类
|
## 16. 以字段取代子类
|
||||||
|
|
||||||
|
@ -765,7 +765,7 @@ public 字段应当改为 private,并提供相应的访问函数。
|
||||||
|
|
||||||
各个子类的唯一差别只在“返回常量数据”的函数上。
|
各个子类的唯一差别只在“返回常量数据”的函数上。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//f2e0cee9-ecdc-4a96-853f-d9f6a1ad6ad1.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//f2e0cee9-ecdc-4a96-853f-d9f6a1ad6ad1.jpg" width="600"/> </div><br>
|
||||||
|
|
||||||
# 八、简化条件表达式
|
# 八、简化条件表达式
|
||||||
|
|
||||||
|
@ -897,7 +897,8 @@ double getSpeed() {
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//1c8432c8-2552-457f-b117-1da36c697221.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//1c8432c8-2552-457f-b117-1da36c697221.jpg" width="500"/> </div><br>
|
||||||
|
|
||||||
|
|
||||||
## 7. 引入 Null 对象
|
## 7. 引入 Null 对象
|
||||||
|
|
||||||
|
@ -1059,7 +1060,7 @@ double finalPrice = discountedPrice (basePrice);
|
||||||
|
|
||||||
以一个对象取代这些参数。
|
以一个对象取代这些参数。
|
||||||
|
|
||||||
<div align="center"> <img src="../pics//08738dd0-ae8e-404a-ba78-a6b1b7d225b3.jpg"/> </div><br>
|
<div align="center"> <img src="../pics//08738dd0-ae8e-404a-ba78-a6b1b7d225b3.jpg" width="600"/> </div><br>
|
||||||
|
|
||||||
## 10. 移除设值函数
|
## 10. 移除设值函数
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user