auto commit

This commit is contained in:
CyC2018 2018-03-20 10:22:04 +08:00
parent 16b568593e
commit bf5c188043

View File

@ -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. 移除设值函数