面向对象之设计
面向對象之設計
?
面向對象魅力在于真實與抽象之間的演變。??? 管理信息系統是個強調個性化的主題,但應當明確的是:這種個性化所對應的是系統功能,而不一定是軟件的設計元素與設計過程。當我們把設計粒度降低到各個 “對象”元素的時候,就會驚奇地發現,絕大部分對象具備相同的形態與操作邏輯。
???? 把問題的普遍性抽象成“類”,它將表示一個獨立的事物單元,在“實例化”的過程中將會通過屬性的改變實現個性化功能的引用與設置。這就是我們所說的“自定義控件”的封裝與引用。這些就是我們設計自定義控件的意義所在。
??? 項目的設計過程應當理解為事物單元“組裝”過程。事物單元的抽象程度越高、涵蓋能力越強,項目設計就會越輕松,可以被引用的事物單元(類)越多,實例級的代碼量就會越少。在設計過程中,面向用戶功能的代碼量大約可以作為對“面向對象”程度的基本評價。
??? 如果沒有自定義控件的存在,所有的業務功能都要通過實例級的代碼實現,功能與模式的重復往往會意味著代碼的復制。這種設計方式只是面向過程理念在面向對象環境下的沿用而不是真正的面向對象設計。對于這一點一定要有清醒的認識。
??? 出于事物自身的特點,完全屏蔽掉實例級的代碼是不可能的,但如果抽象程度合適,實例級的代碼大約相當于裝配過程中的連接件、緊固零,而不在是設計的主體所在。我們的設計目標是:盡量通過封裝與派生的手段來解決問題,在實例化的過程中代碼量越少越好。
??? 代碼量的減少只是一種現象,但它所表現出來的應當是面向對象的構思能力與設計水平。只有高度的抽象與完美的封裝,才有可能在最大程度上減少實例級的代碼量。這才是我們的目的所在。
??? 就項目過程而言,控件的封裝只是最基本的元素單元,在此基礎上,還有很多可以被抽象、歸納的功能與模式,這些可以理解為更高層次的封裝,它們在解決項目代碼的復用程度上具有更加簡約、有效的表現能力。
??? 規范是建立體系的基本前提,承載能力取決于數據體系的構建,適應能力則取景于參數方案的設計。項目的總體構成基本包括:代碼(包括控件)+數據(包括參數)+服務(參數維護與定式功能)組成;這些就是我們實現每個設計的實際過程。
???? 開發只是項目過程中的一個環節,實施過程中的各種變化與適應性調整也是成本消耗的重要組成部分。完成用戶的功能需求只是最基本的設計要求,高水平的設計應當充分考慮在實施或應用過程中的各種可能會出現變化。這是適應性的起源。基本功能的實現來自用戶的業務要求,而運行狀態下的“柔性”定制則是來源是對規律的抽象與升華。關于適應性的提升是降低成本、提高開發價值的重要課題。
??? 更高層次的設計應當是“模式”的概念,代碼的復用只能解決功能點上的問題,模式的復用則會側重于一類功能或一類實現的共性。控件基于到代碼層面的封裝,模式則側重于程序結構的復用。自定義控件與自定義模式共同形成了:基于項目定制實現快速開發的“工作平臺”。
總結
- 上一篇: 技术交流群
- 下一篇: SAP系统财务模块的集团公司处理模式