比如開一台裝置需要按順序給顯示器通電、亮燈、發出聲音。在使用外觀模式前,客戶端直接呼叫通電、亮燈、發出聲音。
在這樣的情況下,後續如果流程發生變化,比如不需要發出聲音或聲音需要在亮燈之前,就需要修改客戶端的**,如果客戶端多處呼叫,就需要修改多處。
public class subsystemone
}public class subsystemtwo
}public class subsystemthree
}// 業務呼叫
subsystemone one = new subsystemone();
one.methodone();
subsystemtwo two = new subsystemtwo();
two.methodtwo();
使用外觀模式以後,業務系統在啟動的時候只需要按下開關,由開關去觸發通電、亮燈、發出聲音的操作。業務端的**只需要按下開關。後續如果流程發生變化,只需要修改 facade 類。
public class subsystemone
}public class subsystemtwo
}public class subsystemthree
}public class facade
public void methoda()
public void methodb()
}// 業務呼叫
facade f = new facade();
f.methoda();
f.methodb();
可用於如果 新系統 需要呼叫 遺留** 中邏輯比較複雜的**時,可使用外觀模式,由 facede 類去封裝複雜的邏輯,並提供簡單的介面給新系統使用。
設計模式9 外觀模式
將類與類之家的依賴關係放在乙個facade類中,降低了類類之間的耦合度,該模式中沒有涉及到介面 實現類1 public class cpu public void shutdown 實現類2 public class memory public void shutdown 實現類3 public c...
設計模式 外觀模式(9)
一 定義 外觀模式為子系統中的一組介面提供乙個一致的介面,其實就是提供乙個高層介面,方便別人的呼叫。二 框架運用 spring jdbc中的外觀模式 org.springframework.jdbc.support.jdbcutils mybatis中的外觀模式 org.apache.ibatis....
設計模式(9) 外觀模式
外觀模式 facade 結構型模式 1.概述 外觀模式 為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使得這一子系統更加容易使用。外觀模式是迪公尺特法則的一種具體實現,通過引入乙個新的外觀角色可以降低原有系統的複雜度,同時降低客戶類與子系統的耦合度。例如 你請朋友吃飯,你...