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

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

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