《Head First設計模式》筆記整理...歡迎交流...設計模式
假設已有一個軟件系統,你但願它能和一個新的廠商的類庫搭配使用,可是這個心廠商設計出來的接口,不一樣於舊廠商的接口。spa
解決這個問題,咱們就能夠使用適配器設計
將一個類的接口,轉換成客戶期待的另外一個接口。適配器讓本來接口不兼容的類能夠合做無間。
提供了一個統一的接口,用來訪問子系統中的一羣接口。外觀定義了一個高層接口,讓子系統更容易使用。
這裏注意一下外觀模式與適配器模式的區別:外觀模式定義的接口訪問的是子系統的一羣接口code
也叫墨忒耳法原則。只和你的密友談話
方針對象
就職何對象而言,在該對象的方法內,咱們只應該調用屬於如下範圍內的方法:接口
//沒有采用這個原則 public float getTemp() { Thermometer thermometer = station.getTermometer(); //這裏,咱們從氣象站取得溫度計對象,再從溫度計對象取得溫度 return thermometer.getTemperature(); }
//採用這個原則 public float getTemo() { return station.getTemperature(); }
以一個汽車類示例:圖片
public class Car { Engine engine; //這是類的一個組件,咱們能夠調用它的方法 //其它實例變量 public Car() {} public void start(Key key) { Doors doors = new Doors(); //這裏建立了一個新對象,它的方法能夠被調用 boolean authorized = key.turns(); //被當作參數傳遞進來的對子那個,其方法能夠被調用 if(authorized) { engine.start(); //能夠調用對象組件的方法 updateDashboardDisplay(); //能夠調用對象內的本地方法 doors.lock(); //能夠地阿偶建立或實例化的對象的方法 } } }