網(wǎng)站后臺(tái)登陸代碼百度關(guān)鍵詞seo排名
一、說一下你熟悉的設(shè)計(jì)模式?
**設(shè)計(jì)模式:**是一套被反復(fù)使用的代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)(情境中一個(gè)問題經(jīng)過證實(shí)的一個(gè)解決方案)。使用設(shè)計(jì)模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性。設(shè)計(jì)模式使人們可以更加簡(jiǎn)單方便的復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu)。將已證實(shí)的技術(shù)表述成設(shè)計(jì)模式也會(huì)使新系統(tǒng)開發(fā)者更加容易理解其設(shè)計(jì)思路。
**創(chuàng)建型:**Abstract Factory(抽象工廠模式),Builder(建造者模式),Factory Method(工廠方法模式),Prototype(原始模型模式),Singleton(單例模式);
**結(jié)構(gòu)型:**Facade(門面模式),Adapter(適配器模式),Bridge(橋梁模式),Composite(合成模式),Decorator(裝飾模式),Flyweight(享元模式),Proxy(代理模式);
**行為型:**Command(命令模式),Interpreter(解釋器模式),Visitor(訪問者模式),Iterator(迭代模式),Mediator(調(diào)停者模式),Memento(備忘錄模式),Observer(觀察者模式),State(狀態(tài)模式),Strategy(策略模式),Template Method(模板方法模式), Chain Of Responsibility(責(zé)任鏈模式)。
二、簡(jiǎn)單工廠、工廠方法和抽象工廠有何區(qū)別?
工廠模式是分為三種,分別是簡(jiǎn)單工廠,工廠方法,抽象工廠。其中工廠方法和抽象工廠是GoF23種設(shè)計(jì)模式中的一種,而簡(jiǎn)單工廠則不是一種設(shè)計(jì)模式,更加可以理解的是一種編碼時(shí)候約定俗成的一種習(xí)慣。那么,就在接下來三點(diǎn)中分別去分析理解工廠模式。
**簡(jiǎn)單工廠模式:**是由一個(gè)工廠對(duì)象創(chuàng)建產(chǎn)品實(shí)例,簡(jiǎn)單工廠模式的工廠類一般是使用靜態(tài)方法,通過不同的參數(shù)的創(chuàng)建不同的對(duì)象實(shí)例,可以生產(chǎn)結(jié)構(gòu)中的任意產(chǎn)品,不能增加新的產(chǎn)品;
- 簡(jiǎn)單工廠的優(yōu)點(diǎn):
- 不需要關(guān)心類的創(chuàng)建細(xì)節(jié)。
- 減輕類之間的耦合依賴,具體類的實(shí)現(xiàn)只是依賴于簡(jiǎn)單工廠,而不依賴其他類。
- 簡(jiǎn)單工廠的缺點(diǎn):
- 擴(kuò)展復(fù)雜,當(dāng)簡(jiǎn)單工廠需要生產(chǎn)出另外一種產(chǎn)品的時(shí)候,需要擴(kuò)展工廠的內(nèi)部創(chuàng)建邏輯,比較有可能引起較大的故障
- 由于工廠類集中了所有實(shí)例的創(chuàng)建邏輯,違反了高內(nèi)聚責(zé)任分配原則,將全部創(chuàng)建邏輯集中到了一個(gè)工廠類中
**工廠方法:**是定義一個(gè)創(chuàng)建對(duì)象的接口,讓實(shí)現(xiàn)這個(gè)接口的的類去決定實(shí)例化具體的類。工廠方法讓類的實(shí)例化推遲到實(shí)現(xiàn)接口的子類中進(jìn)行。
**抽象工廠模式:**提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴對(duì)象的接口,而無需制定他們具體的類,生產(chǎn)多個(gè)系列產(chǎn)品;生產(chǎn)不同產(chǎn)品族的全部產(chǎn)品,不能新增產(chǎn)品,可以新增產(chǎn)品族;
區(qū)別:
- 簡(jiǎn)單工廠:唯一工廠類,一個(gè)產(chǎn)品抽象類,工廠類的創(chuàng)建方法依據(jù)入?yún)⑴袛嗖?chuàng)建具體產(chǎn)品對(duì)象。
- 工廠方法:多個(gè)工廠類,一個(gè)產(chǎn)品抽象類,利用多態(tài)創(chuàng)建不同的產(chǎn)品對(duì)象,避免了大量的if-else判斷。
- 抽象工廠:多個(gè)工廠類,多個(gè)產(chǎn)品抽象類,產(chǎn)品子類分組,同一個(gè)工廠實(shí)現(xiàn)類創(chuàng)建同組中的不同產(chǎn)品,減少了工廠子類的數(shù)量。
注:以上內(nèi)容僅提供參考和交流,請(qǐng)勿用于商業(yè)用途,如有侵權(quán)聯(lián)系本人刪除!
注:此博客只是為了記憶相關(guān)知識(shí)點(diǎn),大部分為網(wǎng)絡(luò)上的文章,在此向各個(gè)文章的作者表示感謝!