從今天開始準(zhǔn)備正式寫Jexi編輯器,目標(biāo)就是《設(shè)計模式》中的C++例子Lexi:一個圖文混排的所見即所得編輯器:
今天在公司閑的時候把《design patterns》的Lexi設(shè)計部分仔細(xì)看了一遍,整理了一下GoF的設(shè)計:
文檔結(jié)構(gòu) :應(yīng)用Composite模式,如圖:
通過接口Glyph,應(yīng)用Composite模式,將多個對象組織起來:
文檔格式 :通過一系列Formatting Algorithm來實現(xiàn)Formatting,這是由Composite和Composition實現(xiàn)的:

what to format |
void SetComposition(Composition*)
|
when to format |
virtual void Compose()
|
用戶界面 :邊框,滾動條等都是通過decorator模式動態(tài)裝飾的:
Redo/Undo功能 :這是通過Command模式實現(xiàn)的,《design patterns》中有詳細(xì)講解,至于其他功能,如平臺無關(guān)窗口,界面風(fēng)格切換,拼寫檢查等暫時就不考慮了。
不幸的是,GoF只給了設(shè)計思想,沒有現(xiàn)成的代碼,所以一切還得靠自己。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
