??? 外觀模式(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元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元

