外觀模式(facade):為子系統中的一組介面提供乙個一致的介面,此模式定義了乙個高層介面,這個介面使子系統更加容易使用
依賴倒轉原則+迪公尺特法則思想
namespace 外觀模式
}//外觀類
class facade
public void methodone()
public void methodtwo()
}//子系統類
class a
}class b
}class c
}class d}}
分三個階段
首先,在設計初期階段,應該有意識的將不同的兩個層分離,層與層之間建立外觀facade,可以為複雜的子系統提供乙個簡單的介面,使耦合大大降低
其次,在開發階段,子系統往往因為不斷的重構演化而變得原來越複雜,,,大多數的模式使用時,也都會產生很多很小的類,也給外部呼叫帶來了困難,,,增加外觀模式facade可以提供乙個簡單的介面,減少他們之間的依賴
第三,在維護乙個遺留的大型系統時,可能這個系統已經非常難以維護和擴充套件,,為新系統開發乙個外觀facade類,來提供設計粗糙或高複雜的遺留**的比較清晰的簡單的介面,讓新系統與facade物件互動,facade與遺留**互動所有複雜的工作。
案例:
建立facade類
using unityengine;
using system.collections;
using unityengine.ui;
using unityengine.eventsystems;
public class gamefacade
}public void init () //即methodone
public void update()//即methodtwo
public void release() //即methodthree
}
使用facade類
using system;
using system.collections.generic;
using system.text;
public class attackstate:iscenestate
private gamefacade mfacade;
//建立乙個類,管理
//兵營、關卡、角色管理、行動力、成就等子系統系統
//由於facade類的作用,attackstate可以不用知道具體子類的存在
//使用facade外觀模式,使attackstate很簡潔,只處理與自身狀態有關的
public override void statestart()
public override void stateend()
public override void stateupdate()
mfacade.update();//使用facademethodthree}}
設計模式遊戲完美開發 外觀模式
外觀模式在gof的解釋是 為子系統定義一組統一的介面,這個高階的介面會讓子系統更容易被使用 以汽車為例,汽車內部有各種各樣的子系統,但是開車的人不需要理解這些,只需要知道怎麼用方向盤 踏板 儀錶盤來進行操控,方向盤 踏板 儀錶盤就是所謂的高階介面,隔離了複雜的子系統。假設乙個專案有5個子系統,每個系...
Java開發中的23種設計模式 外觀模式
外觀模式是為了解決類與類之家的依賴關係的,像spring一樣,可以將類和類之間的關係配置到配置檔案中,而外觀模式就是將他們的關係放在乙個facade類中,降低了類類之間的耦合度,該模式中沒有涉及到介面,看下類圖 我們以乙個計算機的啟動過程為例 我們先看下實現類 public class cpu pu...
JAVA中的設計模式 外觀模式
開關介面 該介面的意義是為了抓取事物的共性 設計模式很多,在使用的時候應該抓取精髓,而不是簡單的套用 用多了,你也應該具備根據不同的情況發展不同的模式的能力 你甚至要可以改進設計模式 亦或設計更符合實際情況的模式 得益於模組化的思想,我們可以更換模組而不需要整體更換 但是,模組化的路上,我們也應該繼...