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