??? 外觀模式(Facade)
?
??? 為子系統中的一組接口提供一個一致的界面,Facade模式定義了一個高層接口,這個接口使得這一子系統更加容易使用。
??? 解決的問題是:組件的客戶和組件中各種復雜的子系統有了過多的耦合,隨著外部客戶程序和各子系統的演化,這種過多的耦合面臨很多變化的挑戰。
?
?
// 汽車引擎 public class Engine { public String engineWork() { return "BMW's Engine is Working"; } public String EngineStop() { return "BMW's Engine is stopped"; } } // 汽車輪子 public class Wheel { public String WheelCircumrotate() { return "BMW's Wheel is Circumrotating"; } public String WheelStop() { return "BMW's Wheel is stoped"; } } public class Body { public Wheel[] wheels = new Wheel[4]; public Engine engine = new Engine(); public Body() { for (int i = 0; i < wheels.length; i++) { wheels[i] = new Wheel(); } } } public class CarFacade { Body body = new Body(); public void Run() { body.engine.engineWork(); for (int i = 0; i < body.wheels.length; i++) { body.wheels[i].WheelCircumrotate(); } } public void Stop() { body.engine.EngineStop(); for (int i = 0; i < body.wheels.length; i++) { body.wheels[i].WheelStop(); } } } public class Test { public static void main(String[] args) { CarFacade car = new CarFacade(); car.Run(); car.Stop(); } }
?
??? 外觀模式完美地體現了依賴倒轉原則和迪米特法則思想
???
依賴倒轉原則
: 高層模塊不應該依賴低層模塊,兩個都應該依賴抽象;抽象不應該依賴細節,細節應該依賴抽象
???
迪米特法則
:
????? ① 只與你直接的朋友們通信;
????? ② 不要跟“陌生人”說話;
????? ③ 每一個軟件單位對其他的單位都只有最少的知識,而且局限于那些與本單位密切相關的軟件單位。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
