盡管將一個系統分割成許多對象通常可以增加其可復用性,但是對象間相互連接的激增又會降低其可復用性了。大量的連接使得一個對象不可能在沒有其他對象的支持下工作,系統表現為一個不可分割的整體,所以,對系統的行為進行任何較大的改動就十分困難。
作用:用一個中介對象封裝一系列的對象交互。中介者使各對象不需要顯式地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。
中介者模式很容易在系統中應用,也很容易在系統中誤用。當系統出現了‘多對多’交互復雜的對象群時,不要急于使用中介者模式,而要先反思你的系統在設計上是不是合理。
中介者模式的優點:首先,Mediator的出現減少了各個Colleague的耦合,使得可以獨立地改變和復用各個Colleague類和Mediator。其次,由于把對象如何協作進行了抽象,將中介作為一個獨立的概念并將其封裝在一個對象中,這樣關注的對象就從對象各自本身的行為轉移到它們之間的交互上來,也就是站在一個更宏觀的角度去看待系統。
中介者模式的缺點:由于ConcreteMediator控制了集中化,于是就把交互復雜性變為了中介者的復雜性,這就使得中介者會變得比任何一個ConcreteColleague都復雜。
Copyright @ baby-fly Powered by: .Text and ASP.NET Theme by: .NET Monster