摘要:簡單工廠模式的實質(zhì)是由一個工廠類根據(jù)傳入的參數(shù),動態(tài)決定應(yīng)該創(chuàng)建哪一個產(chǎn)品類。中的就是簡單工廠模式的體現(xiàn),根據(jù)傳入一個唯一的標(biāo)識來獲得對象,但是否是在傳入?yún)?shù)后創(chuàng)建還是傳入?yún)?shù)前創(chuàng)建這個要根據(jù)具體情況來定。
Spring中常用的設(shè)計模式 常用的設(shè)計模式(23種)如下
創(chuàng)建型:
工廠方法模式Factory Method,抽象工廠模式Abstract Factory 建造者模式Builder,原型模式Prototype,單例模式Singleton
結(jié)構(gòu)型:
適配器模式Adapter,橋接模式Bridge,組合模式Composite 裝飾者模式Decorator,門面模式Facade,亨元模式Flyweight, 代理模式Proxy
行為型:
解釋器模式Interpreter,模板方法模式Template Method, 責(zé)任鏈模式Chain of Responsibility,命令模式Commond 迭代器模式Iterator,調(diào)解者模式Mediator,備忘錄模式Memento, 觀察者模式Observer,狀態(tài)模式State,策略模式Strategy, 訪問者模式Visitor
設(shè)計模式在應(yīng)用中遵循六大原則
開閉原則
定義:對擴(kuò)展開放,對修改關(guān)閉。為了使程序的擴(kuò)展性好,易于維護(hù)和升級。
想要達(dá)到這樣效果,我們需要使用接口和抽象類。
李氏代換原則
定義:里氏代換原則中說,任何基類可以出現(xiàn)的地方,子類一定可以出現(xiàn)。
LSP 是繼承復(fù)用的基石,只有當(dāng)衍生類可以替換掉基類,軟件單位的 功能不受到影響時,基類才能真正被復(fù)用,而衍生類也能夠在基類的基 礎(chǔ)上增加新的行為。里氏代換原則是對“開-閉”原則的補(bǔ)充。實現(xiàn)“開- 閉”原則的關(guān)鍵步驟就是抽象化。而基類與子類的繼承關(guān)系就是抽象化的 具體實現(xiàn),所以里氏代換原則是對實現(xiàn)抽象化的具體步驟的規(guī)范。
依賴倒閉原則
定義:是開閉原則的基礎(chǔ),具體內(nèi)容:針對接口編程,依賴于抽象而不依賴于
具體。
接口隔離原則
定義;使用多個隔離的接口,比使用單個接口要好。還是一個降低類之間的耦
合度的意思,從這兒我們看出,其實設(shè)計模式就是一個軟件的設(shè)計思 想,從大型軟件架構(gòu)出發(fā),為了升級和維護(hù)方便。所以上文中多次出 現(xiàn):降低依賴,降低耦合。
迪米特法則
定義:一個實體應(yīng)當(dāng)盡量少的與其他實體之間發(fā)生相互作用,使得系統(tǒng)功能
模塊相對獨立。
合成復(fù)用原則
定義:是盡量使用合成/聚合的方式,而不是使用繼承。
簡單工廠模式
應(yīng)用場景:又叫做靜態(tài)工廠方法(StaticFactory Method)模式,但不屬于
23 種設(shè)計模式之一。簡單工廠模式的實質(zhì)是由一個工廠類根據(jù)傳 入的參數(shù),動態(tài)決定應(yīng)該創(chuàng)建哪一個產(chǎn)品類。 Spring 中的 BeanFactory 就是簡單工廠模式的體現(xiàn),根據(jù)傳入 一個唯一的標(biāo)識來獲得 Bean 對象,但是否是在傳入?yún)?shù)后創(chuàng)建還 是傳入?yún)?shù)前創(chuàng)建這個要根據(jù)具體情況來定。
歸類 特點 窮舉
創(chuàng)建型模式 是復(fù)雜工廠模式的思維模型 批量生產(chǎn),標(biāo)準(zhǔn)化
工廠方法模式
應(yīng)用場景:通常由應(yīng)用程序直接使用 new 創(chuàng)建新的對象,為了將對象的創(chuàng)建
和使用相分離,采用工廠模式,即應(yīng)用程序?qū)ο蟮膭?chuàng)建及初始化 職責(zé)交給工廠對象。 一般情況下,應(yīng)用程序有自己的工廠對象來創(chuàng)建 Bean.如果將應(yīng)用 程序自己的工廠對象交給 Spring 管理,那么 Spring 管理的就不 是普通的 Bean,而是工廠 Bean。
歸類 特點 窮舉
創(chuàng)建型模式 對于調(diào)用者來說,隱藏了復(fù)雜的邏輯處理過程, 流水線生產(chǎn)
調(diào)用者只關(guān)心執(zhí)行結(jié)果。 對于工廠來說要對結(jié)果負(fù)責(zé),保證生產(chǎn)出符合 規(guī)范的產(chǎn)品。
抽象工廠模式
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/76628.html
摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...
摘要:提升自己,方便他人。其實一份文檔,說到底是為自己減輕工作量。總結(jié)總結(jié)起來,我們在提供一個通用包的時候,應(yīng)該考慮以下七個點文檔。支持的類反射獲取參數(shù)名面向接口編程。一個注解,快速整合 聲明:本文屬原創(chuàng)文章,首發(fā)于公號程序員自學(xué)之道,轉(zhuǎn)載請注明出處 遇到槽點 開發(fā)實踐中,對于開發(fā)一個 jar 包,很多人都只是完成功能,只要功能使用沒問題,就算是完事了,但其實遠(yuǎn)遠(yuǎn)不夠。當(dāng)用戶使用 jar 包...
摘要:時間年月日星期日說明本文部分內(nèi)容均來自慕課網(wǎng)。這對所有形態(tài)的工廠模式都是重要的這個系統(tǒng)的產(chǎn)品有至少一個的產(chǎn)品族同屬于一個產(chǎn)品族的產(chǎn)品是設(shè)計成在一起使用的。 時間:2017年08月27日星期日說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com教學(xué)源碼:https://github.com/zccodere/s...學(xué)習(xí)源碼:https://github.c...
摘要:會一直完善下去,歡迎建議和指導(dǎo),同時也歡迎中用到了那些設(shè)計模式中用到了那些設(shè)計模式這兩個問題,在面試中比較常見。工廠設(shè)計模式使用工廠模式可以通過或創(chuàng)建對象。 我自己總結(jié)的Java學(xué)習(xí)的系統(tǒng)知識點以及面試問題,已經(jīng)開源,目前已經(jīng) 41k+ Star。會一直完善下去,歡迎建議和指導(dǎo),同時也歡迎Star: https://github.com/Snailclimb... JDK 中用到了那...
摘要:學(xué)習(xí)總結(jié)學(xué)習(xí)整理的一些筆記,很簡單。大部分認(rèn)為和只是不同的叫法而已。依賴注入的兩種方式和注解使用注釋驅(qū)動的功能源碼剖析 Spring IoC學(xué)習(xí)總結(jié) 學(xué)習(xí)spring Ioc整理的一些筆記,很簡單。分享給大家。 IoC 基本概念 在這之前,我們先記住一句話。好萊塢原則:Dont call us, we will call you.其實這句話很恰當(dāng)?shù)匦稳萘朔崔D(zhuǎn)的意味;Ioc, Inve...
閱讀 3040·2021-11-23 09:51
閱讀 1725·2021-10-15 09:39
閱讀 1125·2021-08-03 14:03
閱讀 2962·2019-08-30 15:53
閱讀 3488·2019-08-30 15:52
閱讀 2565·2019-08-29 16:17
閱讀 2885·2019-08-29 16:12
閱讀 1708·2019-08-29 15:26