国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

設計模式總結

quietin / 597人閱讀

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

設計模式總結

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

結構型:通過對象和類的組合,得到新的結構和功能

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

詳細分類

工廠

簡單工廠模式就是一個靜態工廠類,提供一個產品族,工廠通過傳入的產品類型參數,決定實例化具體的產品。 (日志記錄器,依據保存地點生成對應的日志記錄器)

工廠方法模式,一個產品對應一個工廠,便于擴展新的產品,只需要增加新的產品子類和工廠子類就可以。

抽象工廠模式,引入產品樹,一個工廠實例對應一系列產品。與工廠方法模式的區別就是,工廠方法只有一個產品接口,而抽象工廠有多個產品接口。(JDBC驅動)

單例模式 , 提供全局的一個唯一實例,避免頻繁的創建和銷毀。(序列號生成器,計數器),實現方式有懶漢式,餓漢式,雙重校驗鎖,靜態內部類,枚舉

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

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

適配器模式,接口轉換。適配器其實更像個代理類,實現目標接口,然后將目標接口的方法轉給被適配的接口的方法。

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

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

組合模式。使用一個元素類型,形成一個樹結構,元素類型中包含自己元素數組域。

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

外觀模式,屏蔽復雜系統,提供統一接口簡化客戶端調用。這個比較符合地米特最少知道法則。

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

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

責任鏈模式,參考tomcat的pipeline。每個責任鏈組件都持有者下一個組件的應用,當前組件處理方法之后調用下一個組件的處理方法。,

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

解釋器模式,

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

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

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

觀察者模式,事件分發,異步。簡單的觀察者實現時維護狀態的對象持有并維護一個觀察者列表,狀態發生時逐個通知。不過現在較通用的是通過消息中間件的消息訂閱的方式,來通知變更。

狀態模式,將狀態抽象為類,形成一個狀態樹。改變狀態時,替換上下文中的狀態類,這樣上下文中,看起來,狀態改變時,行為也改變了。

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

策略模式, 封裝算法,任意替換。實現上和狀態模式非常像。僅僅是抽象的對象不同,狀態模式抽象的是狀態,策略模式抽象的是算法,都是通過替換上下文中對應的類,來達到改變行為的目的。

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

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

MVC模式,M-業務模型,V-模型的展示,C-控制器。V可以簡單理解為業務模型對象的toString功能的解耦,通過控制層C,M和V進行關聯更新,新的狀態參數通過C傳給M,C將新的狀態發送給V。

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

組合實體模式

數據訪問對象模式

前端控制器模式

攔截過濾器模式

服務定位模式

傳輸對象模式

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/67796.html

相關文章

  • Java學習路線總結,搬磚工逆襲Java架構師(全網最強)

    摘要:哪吒社區技能樹打卡打卡貼函數式接口簡介領域優質創作者哪吒公眾號作者架構師奮斗者掃描主頁左側二維碼,加入群聊,一起學習一起進步歡迎點贊收藏留言前情提要無意間聽到領導們的談話,現在公司的現狀是碼農太多,但能獨立帶隊的人太少,簡而言之,不缺干 ? 哪吒社區Java技能樹打卡?【打卡貼 day2...

    Scorpion 評論0 收藏0
  • 【經驗分享】測試人員如何寫總結

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

    Vixb 評論0 收藏0
  • 【Vue項目總結】項目nginx部署

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

    CntChen 評論0 收藏0
  • javaScript高級程序設計腦圖總結

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

    shusen 評論0 收藏0
  • 使用模式構建系列總結

    摘要:在學習更多關于的知識和技能現在到了我們總結使用模式構建系列的時候,這是一個很好的機會回顧一下這個系列涵蓋的模式所解決的問題,并著重復習每個模式所具有的一些好處以及做出的權衡。長期關注分布式系統及通用型數據庫技術。 在MongoDB University學習更多關于MongoDB的知識和技能 現在到了我們總結使用模式構建系列的時候,這是一個很好的機會回顧一下這個系列涵蓋的模式所解決的問題...

    he_xd 評論0 收藏0
  • 開發必會的vim命令技巧總結

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

    dongfangyiyu 評論0 收藏0

發表評論

0條評論

quietin

|高級講師

TA的文章

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