回覆列表
-
1 # 日衝資訊 黃
-
2 # iT例史
面向物件程式設計OOP是怎麼設計的?
一般一款軟體開發大致要經歷如下七個重要步驟,這裡重點說明面向物件程式設計部分,即類、物件和麵向物件三大特徵(封裝、繼承和多型)。
1、收集整理使用者需求。
2、對專案進行可行性分析。
3、詳細分析使用者需求。
4、詳細設計軟體系統。
4.1開發工程師詳細設計軟體系統各功能模組。
4.2、從各功能模組所對應業務中抽象出業務資料關鍵詞。
比如成學生績管理系統可抽象出學生、課程、成績、教師等業務資料關鍵詞,並把它們作為程式中的資料型別,也就是類。
4.3、再從“類”中抽象出與之密切相關的屬性和方法/行為。
4.4、程式設計實現這些類的屬性和方法/行為。
4.5、根據各功能模組要求,有機組織各類,完成各功能模組的程式設計實現。
4.6、測試各功能模組,修改不足。
5、系統聯調。
6、試執行系統,使用者驗收確認。
7、系統維護與升級。
關於類和編碼
封裝,繼承和多型都是類的基本概念。(注意不是物件)掌握這些概念對理解和運用類非常重要。可以透過一些程式設計練習獲得對這些概念的直觀認識。程式語言推薦使用Java或者C#。這兩種語言比較嚴謹地運用了類的概念,比較適合用來學習OOP。C++雖然也是OOP的語言,但語法過於複雜,不適合入門級學習使用。在對類和編碼有了一定程度的理解之後,就要攻克OOP的難點,也就是物件的概念了。
關於物件教科書上喜歡用小貓小狗和動物之類的關係形容物件。這麼形容倒也沒有錯誤。但是,它造成了一種錯覺,似乎是物件和類有一種一一對應的關係。實際上在OOP中物件可以是一個過程,也可以是一種結構,還可以是一組功能。這些物件往往需要用一組類和它們之間巧妙的組合來實現。而類也只不過是物件的程式碼實現而已。
舉個例子一個增刪改查的程式,它的流程是先查,然後增刪改輸入,然後增刪改確認,最後提示增刪改的結果。我們希望為這樣的流程建個模版,保證所有的處理都遵循這一流程。首先,這個流程中,最基本的是增刪改查其中的一個操作,為它做一個抽象類叫Action。Action除了做一次操作以外還要去呼叫下一個操作。所以,要有一個方法DoNext。我們還需要用另一個類,定義輸入確認結果這一子流程。這個類裡面要聚合三次操作。先查後操作要求我們還要用一個類來聚合一次檢索和前面的子流程。在這裡我只想說明覆雜物件的概念,具體怎麼用類來做定義就不囉嗦了。真正的實裝中,上面的例子大概需要十幾個類才能組合出來。
關於設計模式設計模式提供了很多物件實現的思路。可以透過學習設計模式理解物件的概念,並掌握一些用類實現的技巧。前面的例子就會用到抽象工廠模式。因此,設計模式也是OOP入門的必修課。