作為程序員菜鳥的板凳君瓤鼻,決定開始打牢固Java基礎(chǔ),那么就先從開始從設(shè)計(jì)模式開刀吧贤重!
1茬祷、前言
首先我們應(yīng)該知道我們?yōu)槭裁匆獙W(xué)習(xí)設(shè)計(jì)模式,板凳君就先談?wù)勛约旱目捶ò刹⒒龋∑鋵?shí)設(shè)計(jì)模式說(shuō)通俗一點(diǎn)就是我們的無(wú)數(shù)的前輩們總結(jié)的一套案例或者說(shuō)是模板祭犯。因?yàn)樵陂_發(fā)中秸妥,我們會(huì)經(jīng)常遇到很多相同地場(chǎng)景,這個(gè)時(shí)候沃粗,我們的前輩們就把處理這種相似場(chǎng)景的思路或者說(shuō)解決辦法總結(jié)成一套模板粥惧,讓后輩們?cè)谟龅较嗨茍?chǎng)景的時(shí)候直接套用這種模板就行啦!
?所以學(xué)習(xí)這種設(shè)計(jì)模式我們更多的是要學(xué)習(xí)這些設(shè)計(jì)思想最盅,因?yàn)榈拇_是非常經(jīng)典突雪,這可能會(huì)對(duì)以后 自己的編碼風(fēng)格有一定的影響。
2涡贱、?工廠模式
工廠模式應(yīng)該算是這些設(shè)計(jì)模式中我們比較早了解的模式挂签,它經(jīng)常出現(xiàn)在各種配置文件中、或者我們自己地某些代碼中盼产。
我對(duì)于工廠模式的理解就是一種面向過(guò)程的編碼的體現(xiàn)饵婆,因?yàn)殚_發(fā)者在創(chuàng)建一個(gè)對(duì)象的時(shí)候,不再需要自己去創(chuàng)建一個(gè)對(duì)象戏售,而是將這種職能賦予給工廠侨核,調(diào)用者只需要調(diào)用工廠的創(chuàng)建方法就可以得到自己想要的對(duì)象。而工廠對(duì)象又完美的體現(xiàn)了java設(shè)計(jì)原則中的單一職責(zé)灌灾,工廠的職責(zé)就僅僅是為了創(chuàng)建對(duì)象搓译。其次就是,工廠的存在封裝了類的創(chuàng)建锋喜,使調(diào)用者無(wú)法觀察到對(duì)象的創(chuàng)建過(guò)程些己,而只需要關(guān)心創(chuàng)建對(duì)象是所需要的條件即可。
但是這種簡(jiǎn)單的工廠模式嘿般,我們?cè)陂_發(fā)中會(huì)很少或者幾乎看不到段标,因?yàn)樗臄U(kuò)展性并不好,因?yàn)楫?dāng)一個(gè)工廠需要擴(kuò)展產(chǎn)品的時(shí)候炉奴,原先的工廠類已經(jīng)無(wú)法滿足需求逼庞,需要改動(dòng)源碼,違背了開閉原則瞻赶。不過(guò)從簡(jiǎn)單的工廠模式學(xué)起赛糟,我們也能從中學(xué)習(xí)到一些東西,畢竟在學(xué)習(xí)這種模式的時(shí)候我們的思想就已經(jīng)在進(jìn)步了砸逊,不是嗎璧南?好了,下面就來(lái)上代碼舉例子吧师逸!
3司倚、代碼
3.1 這是一個(gè)制造汽車的工廠類、但是從代碼中我們可以看到汽車的創(chuàng)建只有兩種品牌的,當(dāng)我們想要擴(kuò)展產(chǎn)品時(shí)对湃,這個(gè)類是肯定不合適的崖叫。
3.2 車的抽象類
3.3 具體的車
3.4 最后的測(cè)試,從測(cè)試中我們都可以看到遗淳,調(diào)用者只需要面向工廠即可
3.5 運(yùn)行結(jié)果