成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

設(shè)計(jì)模式總結(jié)

quietin / 648人閱讀

摘要:,命令模式,將行為請求者和行為實(shí)現(xiàn)者解耦,將行為抽象為對象。解釋器模式,迭代器模式,將集合對象的存儲數(shù)據(jù)和遍歷數(shù)據(jù)職責(zé)分離。即將遍歷的責(zé)任交給迭代器返回的迭代器,迭代器。

設(shè)計(jì)模式總結(jié)

創(chuàng)建型:除了直接new來實(shí)例化對象外,提供了多種隱藏創(chuàng)建邏輯的生成對象的方法

結(jié)構(gòu)型:通過對象和類的組合,得到新的結(jié)構(gòu)和功能

行為型:解決對象之間的通行和功能職責(zé)分配

詳細(xì)分類

工廠

簡單工廠模式就是一個(gè)靜態(tài)工廠類,提供一個(gè)產(chǎn)品族,工廠通過傳入的產(chǎn)品類型參數(shù),決定實(shí)例化具體的產(chǎn)品。 (日志記錄器,依據(jù)保存地點(diǎn)生成對應(yīng)的日志記錄器)

工廠方法模式,一個(gè)產(chǎn)品對應(yīng)一個(gè)工廠,便于擴(kuò)展新的產(chǎn)品,只需要增加新的產(chǎn)品子類和工廠子類就可以。

抽象工廠模式,引入產(chǎn)品樹,一個(gè)工廠實(shí)例對應(yīng)一系列產(chǎn)品。與工廠方法模式的區(qū)別就是,工廠方法只有一個(gè)產(chǎn)品接口,而抽象工廠有多個(gè)產(chǎn)品接口。(JDBC驅(qū)動)

單例模式 , 提供全局的一個(gè)唯一實(shí)例,避免頻繁的創(chuàng)建和銷毀。(序列號生成器,計(jì)數(shù)器),實(shí)現(xiàn)方式有懶漢式,餓漢式,雙重校驗(yàn)鎖,靜態(tài)內(nèi)部類,枚舉

建造者模式,關(guān)注產(chǎn)品的組裝和次序。(快餐店基本食品相對固定,可以組裝出多種套餐)

原型模式,使用克隆的方法來生成對象。(類初始化西藥消耗較多資源時(shí),比如在使用不可變類的時(shí)候,生成副本)

適配器模式,接口轉(zhuǎn)換。適配器其實(shí)更像個(gè)代理類,實(shí)現(xiàn)目標(biāo)接口,然后將目標(biāo)接口的方法轉(zhuǎn)給被適配的接口的方法。

橋接模式,就是原來通過派生子類來實(shí)現(xiàn)的變化改為組合的方式來實(shí)現(xiàn)。比如一個(gè)圖形類,實(shí)現(xiàn)兩個(gè)子類,一個(gè)畫紅圈,一個(gè)畫綠圈,改為抽取一個(gè)draw借口,實(shí)現(xiàn)兩個(gè)reddraw和greendraw類,原來的圖形類組合draw類

過濾器模式,對對象的流式操作。參考jdk8的stream api

組合模式。使用一個(gè)元素類型,形成一個(gè)樹結(jié)構(gòu),元素類型中包含自己元素?cái)?shù)組域。

裝飾器模式,實(shí)現(xiàn)被裝飾類接口,并且代理被裝飾類的方法,在代理方法的同時(shí)加入裝飾代碼。實(shí)現(xiàn)方式和適配器差不多,不過目的不一樣,只不過適配器代理的是不兼容的接口,而裝飾器代理的是被裝飾接口

外觀模式,屏蔽復(fù)雜系統(tǒng),提供統(tǒng)一接口簡化客戶端調(diào)用。這個(gè)比較符合地米特最少知道法則。

享元模式。對象池,共享對象。比如線程池,連接池。同時(shí)也是一種緩存思想。

代理模式。spring aop,控制對象訪問。光看uml,和適配器,裝飾器非常像,區(qū)別在于應(yīng)用場景上。

責(zé)任鏈模式,參考tomcat的pipeline。每個(gè)責(zé)任鏈組件都持有者下一個(gè)組件的應(yīng)用,當(dāng)前組件處理方法之后調(diào)用下一個(gè)組件的處理方法。,

命令模式,將行為請求者和行為實(shí)現(xiàn)者解耦,將行為抽象為對象。還是以遙控器和電視機(jī)舉例子,按一般的使用思路,遙控器持有電視機(jī)實(shí)例,遙控器通過每個(gè)具體的方法來操作電視機(jī)。引入命令模式后,遙控器持有命令列表(這樣才能支持撤銷/恢復(fù)),命令持有電視機(jī)對象,一個(gè)命令對應(yīng)電視機(jī)一個(gè)操作,遙控器執(zhí)行命令即可,可作為遙控器的使用者,就往遙控器里面添加命令對象,遙控器執(zhí)行命令對象。

解釋器模式,

迭代器模式,將集合對象的存儲數(shù)據(jù)和遍歷數(shù)據(jù)職責(zé)分離?!坝糜陧樞蛟L問集合對象的元素,不需要知道集合對象的低層表示”,即你可以使用迭代器順序訪問hashtable的key,而不需要知道key在hashtable中是如何組織的。即將遍歷的責(zé)任交給迭代器(Hashtable返回的key迭代器,value迭代器)。設(shè)計(jì)上來說,迭代器類會是容器類的內(nèi)部類,生成的內(nèi)部類實(shí)例持有者外部類的引用。

中介者模式,解耦對象之間的交互(MVC中的C就是M和V的中介,消息中間件的訂閱)

備忘錄模式,類似savepoint。主要有三個(gè)角色:狀態(tài)類(單個(gè)savepoint),操作類(讀取或保存savepoint),狀態(tài)列表類(savepoint列表)

觀察者模式,事件分發(fā),異步。簡單的觀察者實(shí)現(xiàn)時(shí)維護(hù)狀態(tài)的對象持有并維護(hù)一個(gè)觀察者列表,狀態(tài)發(fā)生時(shí)逐個(gè)通知。不過現(xiàn)在較通用的是通過消息中間件的消息訂閱的方式,來通知變更。

狀態(tài)模式,將狀態(tài)抽象為類,形成一個(gè)狀態(tài)樹。改變狀態(tài)時(shí),替換上下文中的狀態(tài)類,這樣上下文中,看起來,狀態(tài)改變時(shí),行為也改變了。

空對象模式,提供空對象而不是Null。這個(gè)在實(shí)戰(zhàn)中比較有用,可以避免大量的是否等于NULL的判斷,比如流程申請頁面,第一次申請和退回到申請頁面,如果不是用空對象,頁面就要增加很多空判斷。如果使用空對象,則可以一致處理。

策略模式, 封裝算法,任意替換。實(shí)現(xiàn)上和狀態(tài)模式非常像。僅僅是抽象的對象不同,狀態(tài)模式抽象的是狀態(tài),策略模式抽象的是算法,都是通過替換上下文中對應(yīng)的類,來達(dá)到改變行為的目的。

模板模式,定義算法/流程骨架,一些步驟延遲到子類去實(shí)現(xiàn),由子類來定義算法的某個(gè)具體步驟。大多框架均適用模板模式,比如spring的容器實(shí)現(xiàn),或是tomcat的容器初始化,由上層定義通用過程,每一層的子類逐步完整整個(gè)骨架內(nèi)的步驟

訪問者模式,將數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)操作分離。BUT HOW?數(shù)據(jù)對象提供方法,接納訪問者對象,然后在訪問者對象的訪問方法中,將this傳入,這樣,在訪問者中,就可以訪問該類,并進(jìn)行操作了。對一個(gè)對象可以提供多種不同行為的訪問者,這樣數(shù)據(jù)存儲和數(shù)據(jù)操作之間就解耦了。這種模式,在spring的bean初始化的時(shí)候有使用,將reader傳入factory,然后將this傳入reader,reader加載完beandefinition后,再將之添加進(jìn)factory

MVC模式,M-業(yè)務(wù)模型,V-模型的展示,C-控制器。V可以簡單理解為業(yè)務(wù)模型對象的toString功能的解耦,通過控制層C,M和V進(jìn)行關(guān)聯(lián)更新,新的狀態(tài)參數(shù)通過C傳給M,C將新的狀態(tài)發(fā)送給V。

業(yè)務(wù)代表模式,有四個(gè)角色,客戶端(client),業(yè)務(wù)代表(business delegate) , 查詢服務(wù)(lookup service), 業(yè)務(wù)服務(wù)(business service). 業(yè)務(wù)代表通過查詢服務(wù)得到具體的業(yè)務(wù)服務(wù)子類,向客戶端提供服務(wù)。

組合實(shí)體模式

數(shù)據(jù)訪問對象模式

前端控制器模式

攔截過濾器模式

服務(wù)定位模式

傳輸對象模式

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/67796.html

相關(guān)文章

  • Java學(xué)習(xí)路線總結(jié),搬磚工逆襲Java架構(gòu)師(全網(wǎng)最強(qiáng))

    摘要:哪吒社區(qū)技能樹打卡打卡貼函數(shù)式接口簡介領(lǐng)域優(yōu)質(zhì)創(chuàng)作者哪吒公眾號作者架構(gòu)師奮斗者掃描主頁左側(cè)二維碼,加入群聊,一起學(xué)習(xí)一起進(jìn)步歡迎點(diǎn)贊收藏留言前情提要無意間聽到領(lǐng)導(dǎo)們的談話,現(xiàn)在公司的現(xiàn)狀是碼農(nóng)太多,但能獨(dú)立帶隊(duì)的人太少,簡而言之,不缺干 ? 哪吒社區(qū)Java技能樹打卡?【打卡貼 day2...

    Scorpion 評論0 收藏0
  • 【經(jīng)驗(yàn)分享】測試人員如何寫總結(jié)

    摘要:參與者項(xiàng)目經(jīng)理產(chǎn)品經(jīng)理開發(fā)經(jīng)理測試經(jīng)理及其它相關(guān)人員。項(xiàng)目上線后問題反饋針對項(xiàng)目客戶反饋問題進(jìn)行分析總結(jié),類似缺陷分析,重點(diǎn)總結(jié)遺漏的原因及后需的規(guī)避措施。六匯總整理各部門總結(jié)并發(fā)布基于測試總結(jié)過程中的數(shù)據(jù)分析,我們提出了對部門的建議。 最近參與了幾次面試,面試者的簡歷中都會提及:需求或者...

    Vixb 評論0 收藏0
  • 【Vue項(xiàng)目總結(jié)】項(xiàng)目nginx部署

    摘要:項(xiàng)目開發(fā)完成,接下來是上線,關(guān)于項(xiàng)目的部署,我司前端是部署在服務(wù)器上,關(guān)于的相關(guān)文檔,請自行查閱本文只記錄部署時(shí)碰到的一些問題。其他總結(jié)文章常規(guī)打包優(yōu)化方案組件通信處理方案后臺管理項(xiàng)目總結(jié) 項(xiàng)目開發(fā)完成,接下來是上線,關(guān)于vue項(xiàng)目的部署,我司前端是部署在nginx服務(wù)器上,關(guān)于nginx的相關(guān)文檔,請自行查閱;本文只記錄部署時(shí)碰到的一些問題。 打包 vue項(xiàng)目打包后,是生成一系列的靜...

    CntChen 評論0 收藏0
  • javaScript高級程序設(shè)計(jì)腦圖總結(jié)

    摘要:高級程序設(shè)計(jì)總結(jié)學(xué)習(xí)了這么久,現(xiàn)在將書中的內(nèi)容做一個(gè)總結(jié),后期會慢慢把剩余的部分添加進(jìn)來,歡迎大家高級程序設(shè)計(jì)總結(jié)操作符數(shù)據(jù)類型基本包裝類型單體內(nèi)置對象擴(kuò)展 javaScript高級程序設(shè)計(jì)總結(jié) 學(xué)習(xí)了javaScript這么久,現(xiàn)在將書中的內(nèi)容做一個(gè)總結(jié),后期會慢慢把剩余的部分添加進(jìn)來,歡迎大家starjavaScript高級程序設(shè)計(jì)總結(jié) 操作符 showImg(https://s...

    shusen 評論0 收藏0
  • 使用模式構(gòu)建系列總結(jié)

    摘要:在學(xué)習(xí)更多關(guān)于的知識和技能現(xiàn)在到了我們總結(jié)使用模式構(gòu)建系列的時(shí)候,這是一個(gè)很好的機(jī)會回顧一下這個(gè)系列涵蓋的模式所解決的問題,并著重復(fù)習(xí)每個(gè)模式所具有的一些好處以及做出的權(quán)衡。長期關(guān)注分布式系統(tǒng)及通用型數(shù)據(jù)庫技術(shù)。 在MongoDB University學(xué)習(xí)更多關(guān)于MongoDB的知識和技能 現(xiàn)在到了我們總結(jié)使用模式構(gòu)建系列的時(shí)候,這是一個(gè)很好的機(jī)會回顧一下這個(gè)系列涵蓋的模式所解決的問題...

    he_xd 評論0 收藏0
  • 開發(fā)必會的vim命令技巧總結(jié)

    摘要:工作中常用到的快捷鍵命令模式下操作行光標(biāo)處縮進(jìn),普通模式下向右縮進(jìn)總結(jié)以上就是我認(rèn)為作為開發(fā)會經(jīng)常用到的操作,多聯(lián)系就可以熟練掌握啦 vim起源 showImg(https://segmentfault.com/img/remote/1460000016742520); 上圖可以清晰的看到早期的vim作者使用的機(jī)器,此時(shí)的終端機(jī)鍵盤是沒有獨(dú)立上下左右鍵位的,所以在vim的設(shè)計(jì)之初,HJ...

    dongfangyiyu 評論0 收藏0

發(fā)表評論

0條評論

quietin

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<