程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> OOP程序設計實踐

OOP程序設計實踐

編輯:Delphi

前言
      phoenix,浴火重生的鳳凰。和她的名字一樣,這個版本的熱鍵助手是一個全新的熱鍵助手。雖然她“長得”和以前的版本差不多不過她已經實現了程序的全部重寫。
      應當說phoenix版本是“熱鍵助手”的降級版。在以前開發“熱鍵助手”的時候,按照自己的喜好加了很多功能。然而在實現了這些功能以後,卻發現真正使用這些功能的人其實並不多。這次開發的出發點是實現基本的功能,在用戶需要時再根據具體情況添加。
  OOP
      其實這次重寫“熱鍵助手”主要是對OOP的實踐。在以前寫程序的時候總是喜歡把不同的功能放到不同的單元中,把不同的功能放到不同的函數中……。當時感覺這樣寫程序就已經很帥了,但始終感覺沒有摸到OOP的門。然而就在最近開始有點OOP的感覺了,於是決定將“熱鍵助手”進行一次重寫。
      重寫的過程中問題還是不少的。
      在設計的過程中顆粒細度始終很難把握。因為是初次使用OOP的思想來做程序,在劃分模塊的時候經常“狠不下心”,老是希望把顆粒劃分得比較細,捨不得將顆粒畫粗點。不過根據XP的說法,不應當在程序設計的初期把程序設計得太“完美”,因為你的能力會在設計的過程中提高的嘛。一些東西以後做也許會做得更好,而且現在計劃的很多東西在以後可能會變得毫無用處,為什麼要浪費這麼多的時間來做一些無意義的事呢?而且只要前期的設計不要做的實在太爛,在後期還可以比較方便的使用重構來改善程序結構以適應需求的變化。
  程序具體結構(還沒完成)
      下圖就是程序的類圖,因為還沒真正完成所以在最終實現的時候應當還會做寫修改。
      下面還是對程序的結構進行一些講解吧。(其實類圖提供的信息已經蠻詳細了)
      TvxShortCut類對熱鍵(TvxShortCut)進行統一管理管理。在TvxShortCut有一個TvxSettingMgr的引用,通過她來進行對設置文件的操作。TvxShortCut應當是一個抽象類(目前還不是),因為她沒有和界面打交道的代碼,她的界面相關部分將在子類中實現。
      TvxSettingMgr用於實現配置部分的功能。其實可以將其設計成一個接口。其具體實現可以由TvxXMLSettingMgr等實體類來實現。不過目前還沒有采用其他配置方式的想法,所以先這樣做吧,等到有必要的時候再考慮重構。
      TvxShortCut用於實現熱鍵的注冊和卸載等功能。TvxShortCut應用TvxScript執行熱鍵操作。
      TvxScript對腳本進行分析,並調用TActionFactory來構造一個TvxAction接口的類來執行具體的腳本。(我覺得TvxScript這個類好像有點小問題,但具體怎麼改還想不到,所以先這樣用吧)
      TvxAction執行熱鍵的具體操作。這是一個抽象類,她的具體實現在她的子類裡實現。
      TvxMenuAction類,實現了IvxMenuInterface接口的Action類,可以將其添加到Menu上。這也是一個抽象類。
      TvxOpenFile類,TvxMenuAction的子類,用於具體實現打開文件的操作。
      IvxMenuInterface接口,添加到Menu的接口。
      TvxSubMenu類,有子菜單的菜單項目(分隔符也算到這裡面,反正是和Action無管的菜單項)。
      TvxMenuMgr,具體將實現了IvxMenuInterface類的接口添加到菜單上。

    差不多就這樣了。因為我也是OOP的菜鳥,設計方面還是很菜,而且自我感覺上面的類圖還有不少問題,如果大家有什麼好的建議歡迎指出來。
     

類圖(點擊察看大圖)

備注
  
    在設計的時候我也一直在象,我是不是將問題復雜化了。不過OOP的第一步始終要走出去的,所以就算是再硬的核桃也要將其砸扁。
      順便祈禱這個程序可千萬別夭折了,就算是再爛也還是寫完先。(在接下來的一段時間裡工作會很忙,不知道什麼時候可以將程序寫完)。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved