日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

设计模式简要笔记

發布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 设计模式简要笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

設計模式的視頻課程今天算是告一段落,視頻+《大話設計模式》+ GoF的粗淺學習,還需要日后的練習應用。學習期間留下一段雜亂摘要筆記,供自己溫故知新和增刪整改。


=====================================================================================

0. 單項溝通:A為B服務,則A需要知道B能干什么,但B不需要知道A;不要跨越層次調用功能
0. 語言以外的接口,指的是類的對外的行為,比如公開方法屬性事件索引器

0. 工廠:將復雜的創建與表現(使用)分離,客戶端類不知道他所必須創建的對象的具體類的時候,只創建父類對象,具體多態成哪種具體類,交給工廠

------------------------ 創建型 ----------------------------------
0. 工廠方法:產品父類,產品子類;工廠父類,工廠子類。增加新產品就需要增加新的產品子類和新的工廠子類,平行繼承問題,無法解決。

1. 【唯一】:單例模式:唯一,全局訪問點
  1)餓漢:靜態先創建;懶漢:調用再創建
  2)多線程訪問:加線程鎖Lock,兩層判斷null,第一層為性能,第二層為判斷
  3)單例和靜態類在內存中都只有一個對象,單例對象可釋放,靜態只能等程序結束才可釋放

2. 【多選一】簡單工廠:。多個類型選擇一個來創建,將創建對象的職責委托給一個全局創建點
  1)創建多個實例,可能用到switch的情況,提取出來放到工廠類。一類產品的創建交給一個工廠來做。
  2)不用switch,依賴注入(構造子注入、設值注入、配置注入),所依賴的東西由外界(客戶端)傳進來。如應該創建“什么類型”的實例,類型用反射來提供。
  3)工廠生成的是產品,創建者生成的是部件。

3. 【系列】:抽象工廠:多選多。
  1)抽象工廠創建產品1產品2,子工廠按照系列化來生產特定系列的產品1產品2
  2)抽象工廠不派生,工廠中增加系列字段,利用反射來創建產品1產品2
  3)工廠生成的是產品,創建者生成的是部件。

4. 【克隆】:原型模式:克隆對象,.Net可直接實現ICloneable接口,其他平臺需手寫IClone<>接口
  0)適用性:當一個系統應該獨立于他的產品創建、構成、表示時,要使用原型模式
  1)當要實例化的類是在運行時刻指定,比如動態裝載,或者
  2)為了避免創建一個與產品類層次平行的工廠類層次時,或者
  3)當一個類的實例只能有幾個不同狀態(成員賦值)組合中的一種時。建立相應數目的原型并克隆。
  4)淺拷貝、深拷貝
  5)需要深拷貝的引用型成員,其類型也應該實現ICloneable接口

5. 【組裝】:創建者(生成器)模式:創建復雜對象(成員也有類等),結構穩定,組成結構的具體對象是變化的
  0)例如:同樣是車構造,不同品牌部件不同;同樣是8件套裝,T1和T2
  1)同樣的構建過程可以創建不同的表示
  2)創建、構建(組裝)、表示(客戶)分開;構建過程是穩定的,有新增套裝則新增生成器
  3)工廠生成的是獨立的產品,創建者生成的是套裝的部件。

------------------------ 結構型 ----------------------------------

6. 【轉接】適配器模式:對象復用,新舊兼容
  1)功能一致的兩個類,接口不同,不可直接復用,增加適配器類進行接口包裝轉換,使可以兼容
  2)預先合理設計、發現問題及時重構,可以避免使用適配器
  3)類適配器通過多重繼承實現,.Net java等不支持
  4)對象適配器
  5)例子:Resources.Load類,傳參和返回與需求不符,增加ResourcesManager類,對其進行包裝
  6)例子:技能外觀類中,無參施放方法包裝了有參施放方法,并復用了skillManager

7. 【向導】外觀模式:組織系統,簡化調用
  0)對內高內聚,對外低耦合
  1)為子系統中的一組接口提供一個一致的界面,定義了一個高層接口,這個接口讓子系統更易用
  2)外觀模式可有可無;簡化客戶調用;解耦客戶端與實現子類間的依賴性;層次結構(比如MVC)中定義每一層子系統入口,子系統之間相互依賴則可讓子系統通過外觀通信
  3)個人炒多支股票是一組子系統,購買基金間接買賣股票是外觀
  4)例子:技能外觀類中,AttackUseSkill

8. 【連接】橋接模式:依賴抽象,連接兩端的變化
  1) 將抽象部分與實現部分分離,使他們可以獨立變化;解決排列組合的情況
  2) 例子:技能施放器,選擇目標的算法() 與 施放技能的模式() 都可能變化

9. 【包裝】裝飾模式:動態為對象(而不是類)增加額外功能,接口要一致;將主要方法以串聯方式逐一增加給主目標(一層層裝飾)
  1)不更換引用,不更換接口:所以具體組件類和裝飾器類都要繼承同一個組件父類,同事裝飾器要聚合父類;具體裝飾器要保留父類功能,再新增自己的功能
  2)如果沒有共同的組件父類,可讓具體組件類作為裝飾器類的父類
  3)裝飾器聚合父類,可用構造方法傳入,可用Set傳入
  4)在裝飾器類中加入拆包裝功能:一層層包裝,一層層拆包裝
  5)給對象加功能,不考慮統一的接口,可以使用委托回調
  6)行為疊加就疊加方法,數據疊加就疊加值
  7)例子:StreamReader(new FileStream),用StreamReader包裝一個FileStream對象
  8)例子:不影響行為,影響數值的裝飾:角色 + 裝備
  9)適用性
    1>不影響其他對象的情況下,動態、透明地給單個對象添加職責
    2>處理可以撤銷的職責
    3>不能采用派生的方法來擴充時

10. 【樹】組合模式:樹形層次關系
  1)樹枝無限層次實現,自己包含自己:List<ThisClass> list;樹葉不包含自己。
  2)不讓客戶為難,所以樹葉和樹枝都繼承于根
  3)簡化版,現有層次,再判斷枝葉;無分支則認為是Leaf,TreeNode類,List<TreeNode> list, IsLeaf{get{return nodes.Count == 0;}}
  4)例子:電商的商品類別,無限層次,增加父類別編號屬性
  5)例子:固定類別層次

11. 【幌子】代理模式
  1)對一個對象進行訪問控制
  2)適用性
    1>遠程代理:本地創建代理訪問遠程
    2>虛代理:根據需要創建開銷很大的對象的代理(縮略圖、壓縮)
    3>保護代理:控制對原始對象的訪問,對象擁有不同的訪問權限
    4>智能指引:取代了簡單的指針,訪問對象時執行一些附加操作
      1)對指向實際對象的引用計數,該對象無引用時可以自動釋放 (GC)
      2)第一次訪問一個持久化對象,將其放入內存(緩存)
      3)訪問一個實際對象前,確定其是否已被鎖定,確保其他對象不可修改他(lock)
  2. 例子:立即可查看的小圖片,代理真正的大圖

12. 享元模式

------------------------ 行為型 ----------------------------------

13. 【通知,自動更新】觀察者模式:一對多交互,依賴倒置,抽象通知者,抽象觀察者。
  1)事件為發布者,事件注冊即為添加觀察者
  2)例子:事件,一對多的通知,一方通知,多方訂閱;通知者不知道都誰訂閱,訂閱者互相不認識,訂閱后行為不盡相同。
  3)Attach、Detach,用List放觀察者;注冊、減注冊,用event注冊觀察者

14. 【交流平臺】中介者模式:多對多交互,中介調停者
  1)例子:聯合國抽象中介者,聯合國安理會具體中介者,國家抽象參與者,中美具體參與者

15. 【切換算法】策略模式:關注算法切換的問題,無前置條件,就是改變
  1)算法獨立封裝,可相互替換,獨立于客戶;客戶依賴于抽象策略接口
  2)例子:不同崗位算工資,封裝不同算法
  3)例子:攻擊選擇器,封裝選擇算法

16. 【狀態決定行為】狀態模式:對象狀態變化時改變他的行為,有條件地改變,如升級了就跑著走
  1)模式結構與策略模式相同,引入委托/事件 回調

17. 【骨架】模板方法:定義一個操作中的算法骨架,將特定步驟延遲到子類。
  1)就是模板,在父類中最大化提煉代碼,派生類只寫不同的地方
  2)模板方法用抽象方法或虛方法
  3)骨架、調用邏輯為模板,具體實現和細節交給派生類

18. 備忘錄:記錄一個對象的臨時狀態,游戲存檔

19. 迭代器:提供一種方法順序訪問一個聚合對象中的各個元素,而又不暴露該對象的內部表示
  1)結構:First(), Next(), IsDone(), CurrentItem()
  2)例子:Foreach、yield return、IEnumerator

20. 職責鏈

21. 命令模式

22. 解釋器

23. 訪問者

?

轉載于:https://www.cnblogs.com/gameobject/p/7811683.html

總結

以上是生活随笔為你收集整理的设计模式简要笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 成人激情五月天 | 久草中文在线视频 | 嫩草影院一区二区 | 天天搞天天搞 | 美国伊人网| 黄色在线观看国产 | 日韩三级在线 | 日韩欧美中出 | 国产高清视频网站 | 久久草网站 | 噼里啪啦免费观看 | 黄色av一区二区三区 | 中文字幕高清视频 | 天天av天天 | 伊人毛片 | 日韩性视频| 小蝌蚪av| 人成免费在线视频 | 手机看黄色 | 无码人妻一区二区三区免费n鬼沢 | 婷婷色中文字幕 | 国产夫妻精品 | 国产精品69av | 欧美色图17p | 亚洲香蕉一区 | 色男天堂| 狠狠躁夜夜躁 | 日韩最新在线 | 亚洲av无码一区二区三区网站 | 人人舔人人插 | 91麻豆国产在线观看 | 一级片视频免费 | 你懂得在线视频 | 深爱婷婷| 亚洲视频久久 | 麻豆短视频| 国产成人精品一区二三区四区五区 | 日韩欧美一区二区三区四区五区 | 99免费精品视频 | 国产网址| 精精国产xxxx视频在线 | 日本一区视频在线观看 | 国产一级片一区 | 又黄又爽又色视频 | 激情成人综合 | 打屁股调教视频 | 国产一区二区三区观看 | 麻豆免费av| 久久精品视频16 | 国产精品国产三级国产aⅴ原创 | www.亚洲视频| 国产精品久久色 | 中日韩在线观看 | 夜操操| 内射后入在线观看一区 | 成人免费在线观看av | 日本动漫艳母 | 91精品看片 | a人片| 日本视频h | 91春色| 久久精品国产亚洲 | 黄色视屏在线看 | 双性人做受视频 | 亚洲麻豆一区 | 自拍三级视频 | 东北少妇高潮抽搐 | 最近高清中文在线字幕在线观看 | 看片网址国产福利av中文字幕 | 欧美午夜在线 | 人碰人操 | 进去里片欧美 | 日韩国产毛片 | 成人你懂的 | 蜜臀中文字幕 | 一区二区三区免费观看视频 | 日本亚洲一区 | 国产精品videossex久久发布 | 久久久久久久久久久久国产精品 | 国产精品视频999 | heyzo久久| 日日射射 | 瑟瑟综合网 | 天天射天天干天天 | 久久国产成人精品 | 亚洲九九视频 | 男人av网站 | 三年电影在线观看 | a级在线播放| 91蜜桃在线观看 | 国产美女在线精品 | 国产女主播一区 | 91在线网址 | 欧美性猛交xxxx乱大交3 | www.久久国产| 97视频在线观看免费高清完整版在线观看 | 上海女子图鉴 | 亚洲欧美日韩精品在线 | 性生活av |