在子系統設計,我有時看到有隻具有一個功能一個高層級的軟件設計:它的路線使用類到另一個某一類客戶端從一個客戶的電話想用。但是,它本身沒有任何功能。請採取以下方案:軟件設計問題:Router類
假設保齡球館子系統中有五個班級:一條衚衕,一條車道,一個投球手,控制檯和一個比分。每當子系統外部的客戶想要的任何數據顯示給用戶,它只會傳達給將調用任何它擁有獲取客戶端的請求的數據(例如得分類的控制檯(路由器):客戶端調用使用getScore()調用控制檯,調用Lane的getScore(),調用Bowler的getScore())。
我理解,這是一個不好的設計決定,但我想聽聽其後果你發現有這個路由器類(也可稱爲「中間人」)的真實世界的例子。隨着您所從事的系統的發展,您遇到了哪些問題?你會怎麼說服軟件設計師避免路由器類?
查看上面關於「高內聚」違規的評論。例如,如果我是LaneView的LaneView,那麼爲什麼我要與控制檯交談以獲取LaneView數據?這沒有意義,因爲我正在顯示Lane數據。 (也許這將澄清我在軟件設計中所討論的陷阱)。 – jds2501 2009-06-19 01:48:13