1. 程式人生 > >面向物件程式設計步驟

面向物件程式設計步驟

面向物件程式設計的第一步,就是在問題領域中識別出有效的物件,然後從識別出的物件中抽象出類來。面對紛繁複雜的現實問題,往往存在多種物件劃分的方式,而不同的劃分會帶來類的設計以至於程式結構的各種不同。物件劃分有一些理論,但是不是這門面向物件的入門課程能覆蓋的。而且目前的理論也還不是放諸四海皆準的簡單操作指南。我們舉了一個數字鐘的例子,希望通過這個例子表明物件劃分的重要性,給你一個感性認識。在今後面對實際的問題領域時,可以試試用這裡提到的概念來做物件的劃分和類的設計。但是這只是一個例子,遇到具體情況一定是具體分析,按照問題領域的實際情況來做。
一個物件當然可以由其他類的物件來組成,就像一個人體裡面有心臟、腸胃一樣。物件是由其他物件組成的,而類定義了這樣的組合關係。
那麼下一個問題,就是當一個物件裡有多個物件的時候,那些物件之間是如何互動的,物件和物件之間的聯絡是如何建立的,物件如何和其他物件交流。物件和物件之間的聯絡緊密程度叫做耦合

。物件和物件的耦合程度越緊,表現在原始碼上,就是它們的程式碼是互相依賴、互相牽制的。我們理想的模型,是物件和物件之間的耦合要儘可能的鬆,平行的物件要儘量減少直接聯絡,讓更高層次的物件來提供通訊服務。這些就是在我們這個非常簡單的數字鐘的例子中所體現的。
要實現一個數字鍾非常簡單,如果只是實現功能,入門課程裡的一個迴圈就可以了。這裡所體現的,是更深層次的面向物件設計的理念。

如:11:30 這樣的時鐘, 可以識別出物件分為 “小時”物件和“分鐘”物件,(在問題領域中識別出有效的物件),然後設計一個類來構造這兩個物件,一個表達“小時”物件和一個表達“分鐘”物件(從識別出的物件中抽象出類來), 由此可以我們可以建立一個Display類,類中包含了兩個物件都有的屬性 value值(當前值)和limit值(上限);初始化上限值的建構函式(方法),以及獲取當前值的函式(方法)