OO 設計過程(一):入門---如何設定優先級
-------------------------------------------------------
前言:本文的原作者,Allen Holub
撰稿編輯,JavaWorld
2000 年 7 月
-------------------------------------------------------
<注釋>有的地方省略了我認為無用的東西。
--------------------------------------------------------
我打算讓您實際操作,以親身體驗面向對象 (OO) 的設計和開發過程。與其說本專欄是一個活動,不如說
它是一個旅程,因為需要幾個月才能完成整個過程。我們將從需求搜集入手,從分析到設計,然後完成設計
的Java 實現。到結束時,您將經歷開發 OO 程序的全過程,真正地從開始到結束。我將花很大的篇幅討論基
本理論,但主要重點仍將集中在如何應用該理論的實際示例上。
下個月我們將正式開始,在此之前,我有一些忠告、意見和評論,這些意見將告訴您我對設計主題的個人
觀點和看法。
一:OO 並非關於結構
首先,就其核心而言,面向對象與派生、類層次結構、UML、Java 技術等毫無關系。這些是 OO 設計
人員用來構成分析、設計和實現的工具,但它們並不是使程序面向對象的主要部分。當然,隨著過程的展開
,我將使用面向對象的所有這些結構性部件,但如果您將實現結構與面向對象等同起來,那麼前幾篇專欄文
章可能特別難以理解。面向對象的關鍵概念是建模,所以在動手之前,必須決定建立什麼模型。Adele
Goldberg(在 Succeeding with Objects 中,請參閱參考資料)敘述了一位猶太教教士在新年依始的宗教
集會上講述的故事:
一位教登上一列火車,由於他經常乘坐這輛車,因此列車長認識他。教士伸手到口袋中掏車票。但沒
有找到,他開始翻他的行李。列車長阻止了他:“教士,我知道您肯定有車票。現在別急著找。等找到後再
向我出示。”但教士仍在找那張車票。當列車長再次見到他時,教士說:“你不明白。我知道你相信我有車
票,但 -- 我要去哪裡呢?
有太多項目失敗就是因為它們沒有明確的目標就開始了。OO 過程試圖通過首先解決這個問題來應付這
種困境;需要幾篇專欄文章才能足以細致地做到那一步,以便繼續進行分析和設計階段。即,在可以分析之