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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件构造学习笔记-第十一周

發(fā)布時(shí)間:2023/12/4 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件构造学习笔记-第十一周 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本周的內(nèi)容是,比較各個(gè)設(shè)計(jì)模式的區(qū)別和聯(lián)系,并介紹了狀態(tài)模式和備忘錄模式,以及正則表達(dá)式。正則表達(dá)式用于對(duì)文本文件的處理。在實(shí)驗(yàn)3中有一項(xiàng)要求是對(duì)輸入文本進(jìn)行解析,構(gòu)造航班。要求表達(dá)式不僅要讀入合法數(shù)據(jù),還要不匹配非法的數(shù)據(jù),需要仔細(xì)琢磨。

設(shè)計(jì)模式的區(qū)別和聯(lián)系

1.單個(gè)繼承樹的形式

只使用繼承,不使用委托。依賴反轉(zhuǎn),客戶端只能依賴抽象(使用接口),不能依賴具體。發(fā)生變化時(shí)最好是擴(kuò)展而不是修改。
①Adapter:適用于已經(jīng)有一個(gè)類,但其方法與目前客戶端需求不一致,所以擴(kuò)展一個(gè)adapter和一個(gè)統(tǒng)一接口,該接口被adapter類和原類實(shí)現(xiàn),供客戶端使用。
②Proxy(代理模式):

③Template(模板模式):適用于有共性的算法流程,但是算法各步有不同的實(shí)現(xiàn)。典型的“將共性提升至父類型,將個(gè)性保留在子類型”。如果某個(gè)步驟不需要多種實(shí)現(xiàn),直接在抽象類里寫出共性實(shí)現(xiàn)即可。
2.兩個(gè)繼承樹的形式

兩個(gè)繼承樹,兩個(gè)層次的委托。
①Strategy:需要有多個(gè)算法的實(shí)現(xiàn),在右側(cè)樹里擴(kuò)展子類型即可,在左側(cè)子類型里傳入不同的類型實(shí)例。類比實(shí)驗(yàn)3中的API。

②Iterator:

③FactoryMethod、AbstractFactioy
④Observer:

⑤Visitor:

StatePattern狀態(tài)模式

使用委托,將狀態(tài)轉(zhuǎn)換的行為委派到獨(dú)立的state對(duì)象去完成。

單例模式,外部不能通過構(gòu)造方法創(chuàng)造實(shí)例對(duì)象,所有該狀態(tài)的類共享該實(shí)例。構(gòu)造函數(shù)私有、成員域私有。

MementoPattern備忘錄模式

記住對(duì)象的歷史狀態(tài),以便于回滾。

Originator用于創(chuàng)建備忘錄(存儲(chǔ)狀態(tài))或者從備忘錄中恢復(fù)狀態(tài)。
Memento包含get、set方法。
Caretaker用以存儲(chǔ)備忘錄。

語法驅(qū)動(dòng)構(gòu)造

正則表達(dá)式

總結(jié)

以上是生活随笔為你收集整理的软件构造学习笔记-第十一周的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。