二十一 中介者模式 設計模式學習筆記

2021-08-03 07:03:36 字數 1519 閱讀 8239

(1)需求

美國和伊拉克之間的對話都是通過聯合國安理會作為中介來完成。

(2)uml類圖

a.國家抽象colleague類

package com.longinus.mp;

public

abstract

class country

}

b.抽象中介者類
package com.longinus.mp;

public

abstract

class unitednations

c.具體國家 colleague 類
package com.longinus.mp;

public

class

usaextends

country

public

void

declare(string message)

public

void

getmessage(string message)

}

package com.longinus.mp;

public

class

iraq

extends

country

public

void

declare(string message)

public

void

getmessage(string message)

}

d.具體中介者類
package com.longinus.mp;

public

class

securitycouncil

extends

unitednations

public

void

setcolleague1(usa colleague1)

public iraq getcolleague2()

public

void

setcolleague2(iraq colleague2)

@override

public

void

declare(string message, country colleague) else }}

e.測試類
package com.longinus.mp;

public

class test

}

f.輸出結果
伊拉克獲得對方資訊:不准研製核**,否則發動戰爭

美國獲得對方資訊:我們沒有核**,也不怕侵略

設計模式(二十一) 狀態模式

狀態模式也是一種行為型模式,當我們的程式中需要一些狀態轉換,對於不同的狀態需要不同的行為時,我們就可以考慮使用狀態模式。下面用交通燈來當例子。我們需要紅黃綠三種顏色的狀態。inte ce state class redstate implements state class yellowstate ...

設計模式(二十一) 狀態模式

狀態模式也是一種行為型模式,當我們的程式中需要一些狀態轉換,對於不同的狀態需要不同的行為時,我們就可以考慮使用狀態模式。下面用交通燈來當例子。我們需要紅黃綠三種顏色的狀態。inte ce state class redstate implements state class yellowstate ...

設計模式二十一之命令模式

2.模式的結構與實現 在軟體開發系統中,常常出現 方法的請求者 與 方法的實現者 之間存在緊密的耦合關係。這不利於軟體功能的擴充套件與維護。例如,想對行為進行 撤銷 重做 記錄 等處理都很不方便,因此 如何將方法的請求者與方法的實現者解耦?變得很重要,命令模式能很好地解決這個問題。在現實生活中,這樣...