再一次的看設(shè)計(jì)模式的時(shí)候,感覺自己對設(shè)計(jì)模式,有了一個(gè)進(jìn)一步的理解(自我感覺的J).
在數(shù)學(xué)計(jì)算中我們要求AàB點(diǎn)的最短路徑,可能從A點(diǎn)到B點(diǎn)有很多種走法,但是追求完美的我們(尤其是程序員),總是希望找到一條最短的路徑。設(shè)計(jì)模式也是相同,在設(shè)計(jì)中我們想要找到設(shè)計(jì)中的最短路徑,也就是設(shè)計(jì)的永恒之道(就是設(shè)計(jì)模式中常說的無名的質(zhì)),說白了,就是如何設(shè)計(jì)才能使系統(tǒng)更容易擴(kuò)張,更靈活,更穩(wěn)定。模式追求的是一種最佳的解決方案,在這個(gè)方案的指導(dǎo)下,我們能夠跟好的去實(shí)現(xiàn)我們所想要實(shí)現(xiàn)的東西。
數(shù)學(xué)計(jì)算的時(shí)候有一定的法則,軟件設(shè)計(jì)的時(shí)候也是有一定的法則的,而這些法則,都是在追求軟件設(shè)計(jì)的守恒定律時(shí)形成的——什么開/閉原則,面向接口原則,依賴倒置原則等等,但是軟件設(shè)計(jì)中的原則也是可變的,而且是時(shí)刻發(fā)展的,要不然就不會(huì)出現(xiàn),今天的spring非常火的場面,Ioc原則。
數(shù)學(xué)計(jì)算是通過許多的公式推倒出結(jié)果的,但是我們求解的時(shí)候,會(huì)出現(xiàn)這種情況,C結(jié)果,是通過A和B兩個(gè)公式推導(dǎo)出來的,模式也是一樣,有一些較小的模式,而這些較小的模式是一些較大的模式的基礎(chǔ)。
在理解模式的時(shí)候我們可以從對象的生命周期來理解。
對象產(chǎn)生的時(shí)候需要描述對象的屬性,它的存在形式,創(chuàng)建模式就是用來描述這個(gè)的;而這個(gè)對象存在就會(huì)和其他對象發(fā)生聯(lián)系,就會(huì)和其他對象發(fā)生作用,如何描述他們之間的聯(lián)系和作用就是結(jié)構(gòu)模式要做的事了;前面這些都是靜態(tài)的,對象的存在,不可能永遠(yuǎn)靜止不動(dòng)的,它會(huì)根據(jù)自己的需要,完成一些動(dòng)作,語言中還有動(dòng)詞,名詞,形容詞之分呢!模式就跟語言一樣需要有動(dòng)詞來描述對象,行為模式就是用來描述對象的行動(dòng)的;
設(shè)計(jì)模式,實(shí)際就是一種設(shè)計(jì)中的語言,很多的最基本的模式,就是組成這種語言的基礎(chǔ),我們在理解模式的時(shí)候不能只是背模式,而應(yīng)該靈活的運(yùn)用他們,讓他們有機(jī)的結(jié)合在一起,形成一個(gè)生動(dòng)的句子。這個(gè)就好比我們學(xué)英語,不是光背一些單詞,就能寫出一篇好文章的,還需要我們有語感,理解了以后才能寫出來。
這個(gè)只是我對模式的一點(diǎn)點(diǎn)個(gè)人的理解,不代表所有人的觀點(diǎn)!:)