2 回答

TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個贊
設(shè)計模式是一群有著豐富編程經(jīng)驗(yàn)的人根據(jù)實(shí)際情況,抽象出來的一個模式,所以,你大概得
1.積累足夠的編程經(jīng)驗(yàn)
2.掌握從具體到抽象的能力
這樣,你學(xué)了設(shè)計模式之后,就可以很好的根據(jù)實(shí)際情況,挑選最優(yōu)的模式。

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個贊
理解設(shè)計模式,不是具體理解設(shè)計模式是怎么實(shí)現(xiàn)的,而是理解需要某個設(shè)計模式存在的場景,或者說某個設(shè)計模式是解決什么場景下的問題,這個就要你具備有“場景”的概念,如果沒有“場景”也就無從談起設(shè)計模式,所以最重要的在于你要抽象出場景的概念。
還是拿一個具體的例子來說,簡單就拿單例模式來說:
單例模式最初的定義出現(xiàn)于《設(shè)計模式》(艾迪生維斯理, 1994):“保證一個類僅有一個實(shí)例,并提供一個訪問它的全局訪問點(diǎn)。”
那么單例模式的場景是什么?
首先我們不考慮單不單例的問題,我們認(rèn)為所有的類都可以衍生出來多個實(shí)例,我要用實(shí)例的時候就直接衍生,我們總會發(fā)現(xiàn),我們衍生出來的實(shí)例會分成2種類型:
衍生出的實(shí)例各個相同
衍生出的實(shí)例都有各自不同的特征
那么對于1的類型,我們不僅要問,有必要每次都衍生出新的實(shí)例么?可以不可以只衍生一個實(shí)例反復(fù)使用呢?
ok,單例的場景出來了,就是要避免衍生出很多個相同的實(shí)例,當(dāng)你遇到這個情況時,你就可以使用單例模式設(shè)計。
其他的設(shè)計模式都可以通過類似的還原場景來理解,畢竟先是有問題,后有的解決方案。
建立這個場景的概念是需要不斷的實(shí)踐出來的,還沒有場景的概念的時候,就先別說設(shè)計模式了。
- 2 回答
- 0 關(guān)注
- 1261 瀏覽
添加回答
舉報