中介者模式 論媒婆的重要性

2021-07-25 20:28:23 字數 2516 閱讀 1135

每個人活在這個世界上,就不可不免的要和其他人有接觸,想要真正的乙個人,是不現實的。就像**裡的類一樣,純粹的不和其他類有互動的類,

壓根就沒必要存在。隨著類與類之間的互動,各個類之間的耦合必然越來越強,複雜度也就越來越高,類數量少時還好,數量一多,直接讓你懵逼。

大家想必都知道的石頭剪刀布的遊戲,其中的規則也比較簡單,先用原始的類**來實現這個遊戲的規則。

public

class

******game

}/**

*@introduce:石頭類

* */

class stone

public

void

win()

public

void

lose()

public

void

same()

}/**

*@introduce:剪刀類

* */

class scissor

public

void

win()

public

void

lose()

public

void

same()

}/**

*@introduce:布類

* */

class cloth

public

void

win()

public

void

lose()

public

void

same()

}

控制台輸出:

石頭 vs 剪刀 result : win

石頭 vs 布 result : lose

石頭 vs 石頭 result : same

———————–分隔符————————

剪刀 vs 布 result : win

剪刀 vs 石頭 result : lose

剪刀 vs 剪刀 result : same

———————–分隔符————————

布 vs 石頭 result : win

布 vs 剪刀 result : lose

布 vs 布 result : same

觀察控制台可以發現已經達到了實現簡單遊戲的規則,不過這裡的耦合太強了,這是三個簡單類,但是每個類都和剩下的類耦合,

如果類資料上公升,這個耦合度會更強,關係更複雜。這時就可以引進乙個中介者,通過中介者把這個關聯關係拆開,類之間的相互依賴都改為依賴中介者,

從而降低耦合度。

public

class

******game

}/**

*@introduce:中介者類

* */

class mediator

public scissor getscissor()

public cloth getcloth()

}/**

*@introduce:石頭類

* */

class stone

public

stone(mediator mediator)

public

void

win()

public

void

lose()

public

void

same()

}/**

*@introduce:剪刀類

* */

class scissor

public string getname()

public

void

win()

public

void

lose()

public

void

same()

}/**

*@introduce:布類

* */

class cloth

public string getname()

public

void

win()

public

void

lose()

public

void

same()

}

控制台輸出時一樣的,這裡就不展示了,通過新增了乙個中介者類使得這三個類(剪刀、石頭、布)都不在與其他兩個類直接互動,都是通過中介者來完成,

即使也會新增了更多的類,這都是通過中介者來互動。類之間的耦合不會變高,不過相應的中介者類會變得越來越複雜。如果只是簡單的幾個類

其實沒必要用中介者模式,中介者模式是在各個類之間出現了網狀的關聯關係時才去使用的。平時幾個簡單類之間沒必要用到(上面只是舉個例子)。

參考大牛部落格

論安全的重要性

論安全的重要性 安全 是乙個永不過時的話題。在我們的現實生活中,無數的事實告訴我們,凡是無視安全的行為必將付出慘痛的代價。世界上每天都在發生著安全事故,汽車超載,超速行駛,闖紅燈 生產單位偷工減料,違規操作 公共服務場所無視安全規範 種種無視安全的情況造成了一起又一起的安全事故。慘痛的教訓告訴我們任...

論溝通的重要性

溝通,是建立人際關係的橋梁,如果這個世界缺少了溝通,那將是乙個不可想象的世界。可以這樣說,沒有溝通就沒有人際的互動關係,人與人之間關係,就會處在僵硬 隔閡 冷漠的狀態,會出現誤解 扭曲的局面,給工作和生活帶來極大的害處。資訊時代的到來,工作 生活節奏越來越快,人與人之間的思想需要加強交流 社會分工越...

論特徵的重要性

特徵工程有多重要,可以引用一句話來表達 資料和特徵決定了模型的上限,演算法只是在幫忙逼近這個上限。好的特徵是決定乙個模型準確率的關鍵,那問題來了?什麼是特徵呢,特徵就是資料對於結果的一種描述。比如我們形容乙個人是否漂亮,那她的眼睛大小 鼻子的形狀 臉型都是特徵。通常,當獲得乙份結構化資料的時候,如果...