2 回答
TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
設(shè)計(jì)模式是一群有著豐富編程經(jīng)驗(yàn)的人根據(jù)實(shí)際情況,抽象出來(lái)的一個(gè)模式,所以,你大概得
1.積累足夠的編程經(jīng)驗(yàn)
2.掌握從具體到抽象的能力
這樣,你學(xué)了設(shè)計(jì)模式之后,就可以很好的根據(jù)實(shí)際情況,挑選最優(yōu)的模式。
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
理解設(shè)計(jì)模式,不是具體理解設(shè)計(jì)模式是怎么實(shí)現(xiàn)的,而是理解需要某個(gè)設(shè)計(jì)模式存在的場(chǎng)景,或者說(shuō)某個(gè)設(shè)計(jì)模式是解決什么場(chǎng)景下的問(wèn)題,這個(gè)就要你具備有“場(chǎng)景”的概念,如果沒(méi)有“場(chǎng)景”也就無(wú)從談起設(shè)計(jì)模式,所以最重要的在于你要抽象出場(chǎng)景的概念。
還是拿一個(gè)具體的例子來(lái)說(shuō),簡(jiǎn)單就拿單例模式來(lái)說(shuō):
單例模式最初的定義出現(xiàn)于《設(shè)計(jì)模式》(艾迪生維斯理, 1994):“保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)?!?/p>
那么單例模式的場(chǎng)景是什么?
首先我們不考慮單不單例的問(wèn)題,我們認(rèn)為所有的類都可以衍生出來(lái)多個(gè)實(shí)例,我要用實(shí)例的時(shí)候就直接衍生,我們總會(huì)發(fā)現(xiàn),我們衍生出來(lái)的實(shí)例會(huì)分成2種類型:
衍生出的實(shí)例各個(gè)相同
衍生出的實(shí)例都有各自不同的特征
那么對(duì)于1的類型,我們不僅要問(wèn),有必要每次都衍生出新的實(shí)例么?可以不可以只衍生一個(gè)實(shí)例反復(fù)使用呢?
ok,單例的場(chǎng)景出來(lái)了,就是要避免衍生出很多個(gè)相同的實(shí)例,當(dāng)你遇到這個(gè)情況時(shí),你就可以使用單例模式設(shè)計(jì)。
其他的設(shè)計(jì)模式都可以通過(guò)類似的還原場(chǎng)景來(lái)理解,畢竟先是有問(wèn)題,后有的解決方案。
建立這個(gè)場(chǎng)景的概念是需要不斷的實(shí)踐出來(lái)的,還沒(méi)有場(chǎng)景的概念的時(shí)候,就先別說(shuō)設(shè)計(jì)模式了。
- 2 回答
- 0 關(guān)注
- 1281 瀏覽
添加回答
舉報(bào)
