沒(méi)錯(cuò),我要開(kāi)始寫(xiě)“自己的”設(shè)計(jì)模式系列了。
其實(shí),關(guān)于設(shè)計(jì)模式,無(wú)論是書(shū),還是網(wǎng)絡(luò)文章,都已經(jīng)出了很多了。但是,我還是要寫(xiě)這個(gè)系列,并對(duì)這些設(shè)計(jì)模式進(jìn)行我自己的解讀。
首先,我覺(jué)得有必要先提出幾個(gè)觀點(diǎn),因?yàn)槲野l(fā)現(xiàn)不少人,真的不會(huì)用設(shè)計(jì)模式,或者叫亂用設(shè)計(jì)模式。
第一點(diǎn),設(shè)計(jì)模式是不是一定要用,是不是用了就比不用好?
我可以很肯定的說(shuō),設(shè)計(jì)模式不是一定要用,用了也不一定比不用好。
第二點(diǎn),學(xué)習(xí)了設(shè)計(jì)模式,就能設(shè)計(jì)出好的代碼結(jié)構(gòu)嗎?
答案,是NO。抱歉,學(xué)了設(shè)計(jì)模式不一定能設(shè)計(jì)出好的代碼結(jié)構(gòu)。設(shè)計(jì)好的代碼結(jié)構(gòu)或者好的架構(gòu),會(huì)用到設(shè)計(jì)模式,但不代表會(huì)設(shè)計(jì)模式就能設(shè)計(jì)好的代碼和架構(gòu)。
第三點(diǎn),設(shè)計(jì)模式,是不要要全部學(xué)完?
答案依然是否定的。設(shè)計(jì)模式,不需要學(xué)完。
第四點(diǎn),為什么要學(xué)設(shè)計(jì)模式?
這個(gè)問(wèn)題,我得好好講講:首先,設(shè)計(jì)模式是幾個(gè)國(guó)外的大佬一起總結(jié)出來(lái)的,注意這個(gè)詞“總結(jié)”。其實(shí),他們也是在自己平時(shí)的生活,工作中遇到了某些問(wèn)題,解決了這些問(wèn)題之后,發(fā)現(xiàn)的一種規(guī)律,再將這種規(guī)律進(jìn)行抽象和總結(jié),就逐步成了我們今天說(shuō)的設(shè)計(jì)模式。
所以,設(shè)計(jì)模式,可以看作是一種經(jīng)驗(yàn)。可能,初看設(shè)計(jì)模式,會(huì)驚嘆它那些精巧的設(shè)計(jì),但是,當(dāng)你慢慢理解熟悉它之后,你會(huì)發(fā)現(xiàn)有一些模式,就是生活中一些事情的縮影。
其實(shí),就算你沒(méi)有學(xué)過(guò)設(shè)計(jì)模式,但你喜歡思考,喜歡總結(jié),你也可以寫(xiě)出一系列的“設(shè)計(jì)模式”出來(lái),而且還會(huì)發(fā)現(xiàn),你的這些“設(shè)計(jì)模式”和我們所知道得設(shè)計(jì)模式,是如此得相似,甚至雷同。
最后,要提出一個(gè)很重要得觀點(diǎn):很多人認(rèn)為(說(shuō)),代碼是寫(xiě)給計(jì)算機(jī)看的,雖然最終實(shí)現(xiàn),的確是由計(jì)算機(jī)實(shí)現(xiàn)的,但我認(rèn)為,代碼就是寫(xiě)給人看的,機(jī)器哪懂得看,它只會(huì)計(jì)算和執(zhí)行。
記住,這個(gè)觀念吧,代碼是寫(xiě)給人看的。