在咱們的一個實現中,下列哪一種說法正確?(多選) P42
java
public class WeatherDate { // 實例變量聲明 public void measurementsChanged() { float temp = getTemperature(); float humidity = getHumidity(); float pressure = getPressure(); currentConditionsDisplay.update(temp, humidity, pressure); statisticsDisplay.update(temp, humidity, pressure); forecastDisplay.update(temp, humidity, pressure); } // 其餘 WeatherData 方法 }
[x] A. 咱們是針對具體實現編程,而非針對接口git
[x] B. 對於每一個新的佈告板,咱們都得修改代碼github
[x] C. 咱們沒法在運行時動態地增長(或刪除)佈告板編程
[x] D. 佈告板沒有實現一個共同的接口設計模式
TypeScript
和 Golang
等語言,這些語言是存在鴨子類型,不須要顯示繼承類或者接口(但本書全部例子都是 Java
,因此不認爲是鴨子類型)[x] E. 咱們還沒有封裝改變的部分ide
[x] F. 咱們侵犯了 WeatherData 類的封裝idea
定義了對象之間的一對多依賴,這樣一來,當一個對象改變狀態時,它的全部依賴者都會受到通知並自動更新 P51
spa
設計原則:爲了交互對象之間的鬆耦合設計而努力 P53
設計
本文首發於公衆號:滿賦諸機( 點擊查看原文) 開源在 GitHub : reading-notes/head-first-design-patterns
![]()