解析-系統(tǒng)設(shè)計(jì)-設(shè)計(jì)模式

設(shè)計(jì)模式

創(chuàng)建型

  • 簡單工廠寿弱、工廠方法著瓶、抽象工廠

1.工廠是某個(gè)創(chuàng)建方法延遲到子類奖亚,抽象工廠是 一組成套的方法 封裝在一個(gè)子類

  • 單例

1.可以用enum實(shí)現(xiàn)
2.雙重校驗(yàn)方式
注意volital的作用:可見性羔沙、防止指令重排序(可能先執(zhí)行 引用賦值 的指令揪阿,再執(zhí)行 構(gòu)造函數(shù)初始化 的指令雁仲。這樣會(huì)導(dǎo)致其他線程判斷 引用不為空 而直接開始使用仔夺,而此時(shí) 引用對應(yīng)的對象 還沒有初始化)

  • 原型
  • 建造者

1.client多次調(diào)用某一個(gè)建造者的多個(gè)構(gòu)造方法,最終從建造者中獲取組裝好的一個(gè)產(chǎn)品

結(jié)構(gòu)型

  • 適配器

1.類級別適配器
類級別進(jìn)行接口的實(shí)現(xiàn)攒砖。這樣所有實(shí)現(xiàn)類都要實(shí)現(xiàn)對應(yīng)的接口方法缸兔。
2.對象級別適配器
就是通過組合模式實(shí)現(xiàn)。adpter為了實(shí)現(xiàn)適配的接口功能吹艇,調(diào)用被適配實(shí)例對象的方法惰蜜。

  • 橋接

1.涉及2個(gè)方向的演化。其中abstraction維度的變化會(huì)比較多受神,比較靈活抛猖,implementor維度基本都是固定的功能實(shí)現(xiàn)。
2.說人話就是abstraction的子類可能會(huì)隨時(shí)增加各種新方法路克,用來實(shí)現(xiàn)個(gè)性化的功能樟结,而其橋接的implementor則比較固定,只是用來在abstraction定義的方法中用來實(shí)現(xiàn)固定的功能精算。
3.跟組合模式的差別在于其在abstraction維度有演化瓢宦。

  • 裝飾
  1. 主要涉及2方面的對象。1是具體的實(shí)現(xiàn)類灰羽,2是裝飾類驮履。其關(guān)鍵點(diǎn)在于:裝飾類會(huì)持有一個(gè)實(shí)現(xiàn)類的引用。
  2. 示例:答辯升級書寫ppt廉嚼。低級別負(fù)責(zé)具體的ppt書寫玫镐,領(lǐng)導(dǎo)及boss負(fù)責(zé)裝飾一下(評語,OKR)怠噪。
  • 外觀
  • 享元
  • 代理

1.意圖
為其它對象提供一種代理恐似,以便控制對該對象的訪問
2.一些可以使用proxy模式的常見情況
遠(yuǎn)程代理remote proxy:
為一個(gè)對象在不同的地址空間提供代理。比如proxy負(fù)責(zé)對請求進(jìn)行編碼傍念,并向不同地址的對象發(fā)送請求矫夷。
虛代理virtual proxy:
根據(jù)需要?jiǎng)?chuàng)建開銷很大的對象葛闷。代理保存一部分常用的或簡單的信息,以延遲對真實(shí)對象的初始化和其它請求双藕。
保護(hù)代理protection proxy:
控制對原始對象的訪問淑趾,比如權(quán)限控制

行為模式

  • 觀察者

1.又叫 發(fā)布-訂閱
2.有推和拉2種模式。在拉模式下忧陪,可以只告訴觀察者更新消息扣泊,讓它自己去拉具體信息。

  • 狀態(tài)state

1.意圖
允許對象在其內(nèi)部狀態(tài)改變時(shí)嘶摊,改變其行為延蟹。對象看起來像修改了它的類。
2.適用性
一個(gè)對象的行為取決于它的狀態(tài)叶堆,并且它必須在運(yùn)行時(shí)刻根據(jù)狀態(tài)改變它的行為等孵。
一個(gè)操作中含有多分支,通常每個(gè)分支都需要根據(jù)狀態(tài)再做一次區(qū)分蹂空。
3.協(xié)作
后繼狀態(tài)的維護(hù)可以有context或者具體的state子類維護(hù)俯萌。context本身可以作為參數(shù)傳入state子類。

  • 訪問者visitor

1.關(guān)鍵點(diǎn)
每一個(gè)visitor中上枕,都包含了所有結(jié)構(gòu)對象的對應(yīng)方法咐熙。
2.好處
可以方便的添加visitor的行為。比如要對所有結(jié)構(gòu)對象都添加一種check行為辨萍,只需要新增一個(gè)visitor棋恼,該visitor實(shí)現(xiàn)針對每一個(gè)結(jié)構(gòu)對象的check實(shí)現(xiàn)即可。

  • 命令
  1. 每一個(gè)命令都關(guān)聯(lián)到一個(gè)reciver接收者锈玉。
  • 模板+策略
    模板定義算法執(zhí)行步驟爪飘,中間會(huì)調(diào)用到抽象方法。子類實(shí)現(xiàn)抽象方法拉背。
  • 享元
    享元本身只保存 內(nèi)部 狀態(tài)师崎,外部在調(diào)用享元的方法時(shí),會(huì)傳入 外部狀態(tài) 給享元椅棺,以便享元使用外部狀態(tài)犁罩,并結(jié)合享元自身的內(nèi)部狀態(tài)來完成方法操作。
    由于享元本身內(nèi)部狀態(tài)對所有外部使用者都是統(tǒng)一固定的两疚,所以享元可以被復(fù)用床估,避免創(chuàng)建大量的類似對象。
  • 職責(zé)鏈
    適用場景是
  • 備忘錄
    記錄對象每一個(gè)時(shí)刻的所有狀態(tài)值
  • 組合诱渤、迭代器丐巫、解釋器、中介者、享元递胧、備忘錄鸦做、外觀、職責(zé)鏈
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谓着,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子坛掠,更是在濱河造成了極大的恐慌赊锚,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屉栓,死亡現(xiàn)場離奇詭異舷蒲,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)友多,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門牲平,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人域滥,你說我怎么就攤上這事纵柿。” “怎么了启绰?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵昂儒,是天一觀的道長。 經(jīng)常有香客問我委可,道長渊跋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任着倾,我火速辦了婚禮拾酝,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卡者。我一直安慰自己蒿囤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布崇决。 她就那樣靜靜地躺著蟋软,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嗽桩。 梳的紋絲不亂的頭發(fā)上岳守,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機(jī)與錄音碌冶,去河邊找鬼湿痢。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的譬重。 我是一名探鬼主播拒逮,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼臀规!你這毒婦竟也來了滩援?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤塔嬉,失蹤者是張志新(化名)和其女友劉穎玩徊,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體谨究,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恩袱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了胶哲。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畔塔。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖鸯屿,靈堂內(nèi)的尸體忽然破棺而出澈吨,到底是詐尸還是另有隱情,我是刑警寧澤寄摆,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布棚辽,位于F島的核電站,受9級特大地震影響冰肴,放射性物質(zhì)發(fā)生泄漏屈藐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一熙尉、第九天 我趴在偏房一處隱蔽的房頂上張望联逻。 院中可真熱鬧,春花似錦检痰、人聲如沸包归。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽公壤。三九已至,卻和暖如春椎椰,著一層夾襖步出監(jiān)牢的瞬間厦幅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工慨飘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留确憨,地道東北人译荞。 一個(gè)月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像休弃,于是被迫代替她去往敵國和親吞歼。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351