外觀模式 遊戲開發中的設計模式 外觀模式

2021-09-08 16:08:56 字數 1876 閱讀 1233

外觀模式(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中的設計模式 外觀模式

開關介面 該介面的意義是為了抓取事物的共性 設計模式很多,在使用的時候應該抓取精髓,而不是簡單的套用 用多了,你也應該具備根據不同的情況發展不同的模式的能力 你甚至要可以改進設計模式 亦或設計更符合實際情況的模式 得益於模組化的思想,我們可以更換模組而不需要整體更換 但是,模組化的路上,我們也應該繼...