今晚終於考完了大物,應該是要和物理說再見了,時間終於多一點了,多學學線代盡量讓這學期的績點不要太難看。設計模式也要花更多的精力了,only for dreams!
今天學習的是乙個比較簡單的模式,外觀模式。
外觀模式(facade)
為子系統中的一組介面提供乙個一致的介面,定義乙個高層介面,這個介面使得這一子系統更加容易使用。引入外觀角色之後,使用者只需要直接與外觀角色互動,使用者與子系統之間的複雜關係由外觀角色來實現,從而降低了系統的耦合度。
角色:外觀類:為子系統提供乙個共同的對外介面,使用者與子系統之間的複雜關係由此角色實現。
子系統類集合:實現子系統的功能,處理外觀類物件指派的任務。
類圖:
**實現:
facade.cs
class facade
public void methoda()
public void methodb()
}
subsystemone.cs
class subsystemone
}
subsystemtwo.cs
class subsystemtwo
}
subsystemthree.cs、
class subsystemthree
}
subsystemfour.cs
class subsystemfour
}
program.cs
class program
}
在設計初期,應該有意識的將不同的兩個層分離開來,層與層之間建立外觀facade,這樣為複雜的子系統提供乙個簡單的介面,使得偶合度大大降低。
在開發階段,子系統往往因為不斷演化而變得越來越複雜。大多數模式使用時都會產生更多更小的類。這使得子系統更具可重用性,也更容易對子系統進行定製,增加外觀facade提供乙個簡單的介面,可以減少他們之間的依賴。
維護乙個大型遺留系統的時候,可能這個系統已經非常難以維護和擴充套件,但又包含非常重要的功能,為其開發乙個外觀類,以便新系統與其互動。
總的來說,外觀模式實現了子系統與客戶端之間的松耦合關係。客戶端遮蔽了子系統元件,減少了客戶端所需處理的物件數目,並使得子系統使用起來更加容易。
Java Facade Pattern 外觀模式
外觀模式 facade pattern 隱藏系統的複雜性,並向客戶端提供了乙個客戶端可以訪問系統的介面。這種型別的設計模式屬於結構型模式,它向現有的系統新增乙個介面,來隱藏系統的複雜性。這種模式涉及到乙個單一的類,該類提供了客戶端請求的簡化方法和對現有系統類方法的委託呼叫。關鍵 在客戶端和複雜系統之...
Headfirst java設計模式 外觀模式
外觀模式 提供乙個統一的介面,用來訪問子系統中的一群介面。外觀模式定義了乙個高層介面,讓子系統更容易使用。簡而言之 外觀模式目的是讓介面更簡單。public class amplifier public void off public void setcd cdplayer cdplayer pub...
JavaScript設計模式系列八 外觀模式
外觀模式 外觀模式是指提供乙個統一的介面去訪問多個子系統的多個不同的介面,為子系統中的一組介面提供統一的高層介面。使得子系統更容易使用,不僅簡化類中的介面,而且實現呼叫者和介面的解耦。外觀模式在我們的日常工作中十分常見。我們來看乙個例子 a.js export default b.js export...