在軟體元件設計中,如果責任劃分的不清晰,使用繼承得到的結果往往是隨需求的變化,子類急劇膨脹,同時充斥著重複**,這時候的關鍵是劃清責任。
class
player
class
musicplayer
:public player
virtual
void
setfile
(const
char
*musicname)
}
class
pictureplayer
:public player
virtual
void
setfile
(const
char
*picturename)
}
class
videoplayer
:public player
virtual
void
setfile
(const
char
*videoname)
}
class
standardmusicplayer
:public musicplayer
virtual
void
setfile
(const
char
*musicname)
virtual
char
*getversions()
}
class
standardpictureplayer
:public pictureplayer
virtual
void
setfile
(const
char
*picturename)
virtual
char
*getversions()
}
class
standardvideoplayer
:public videoplayer
virtual
void
setfile
(const
char
*videoname)
virtual
char
*getversions()
}
又過了幾天,老闆為了順應部分社會高層人士對身份地位的需求,讓你開發乙個豪華版(iq tax)。於是你只能再寫三個類,給各個功能加上duang很烏黑很濃密的特效。這下子這個專案就有9個類,但實際上這9個類之間的相似度很高。
按照這樣的寫法假設你有n個功能類,m個版本,你就需要寫m*n個類。這個類的數量是很不合理的。
JAVA設計模式 單一職責模式
現實生活中我們現在擁有太多的各種各樣的產品,它們的功能很多各各樣,但是我們同時間也會發現在乙個產品當中 的每種功能,其實生活當中還是有對應一種功能的產品,而且可能這功能單一的產品比那功能多種多樣的產品還要貴 呢,所以說有的時候一種東西功能單一其實更加好用,比如手機有照相,上網,攝像等功能,但是它的這...
設計模式 單一職責原則
單一職責原則解釋 就乙個類而言,應該只有乙個引起它變化的原因。我們有時候在做程式設計的時候,很自然而然的會給乙個類增加這樣那樣的功能,比如 我們要做乙個 會給這樣乙個default.aspx.cs後台檔案加入演算法的 資料庫訪問的sql語句,業務邏輯的 等等都寫到這個類檔案中,這就意味著,無論任何需...
設計模式 單一職責原則
單一職責原則srp single responsibility principle,又稱單一功能原則,規定乙個類應該只有乙個發生變化的原因。所謂職責是指類變化的原因。如果乙個類有多於乙個的動機被改變,那麼這個類就具有多於乙個的職責。而單一職責原則就是指乙個類或者模組應該有且只有乙個改變的原因。如果乙...