類別之間的關係(Relationship) — 整體-局部(Whole-parts) (2)

說明 “整體—局部(Whole-parts)” 可以說是降低物件複雜度(Complexility)的最有效機制,因為,你可以將某一物件視為是一個 “整體(Whole)”,只要聚焦從該物件外面的角度來觀察該物件的特徵與行為,不用去關心組成該物件的細節,包括其組成的內部元素。其實,不探究物件內部的組成元素,就是一種封裝(Encapsulation)的效果,而封裝正是軟體設計人員在處理軟體的複雜度時 ...

類別之間的關係(Relationship) — 結合(Association)關係 (1)

關係 物件透過訊息(message)的傳遞至另一個物件,救代表了兩個物件之間,建立一種連線(link)的關係。觀察一段敘述:韓劇中的長今,因為當醫女要練習針灸的緣故,所以施針在一隻大頭吉娃娃身上。以 UML 物件圖(Object Diagram) 來表示如下圖: 圖1、範例—物件之間的連結關係 上圖 1 的箭頭表示物件的可視性(visibility),說明長今(UML 物件圖內的物件名稱係加上 ...

【單元課程(兩天)】使用案例應用與實作程式碼 (2006/12/02,03)

各位好: 使用案例如同目標設定,明確釐清清楚參與者使用系統的目的(Goal)後,然後再來就是找出如何達成目標的手段與步驟(實現使用案例與寫碼),至於細節的 修飾(屬性、參數、流程、資料型態等),則利用漸增與漸進(I&I, Iterationand Incremental)的方式來修正,絕不一開始就落入細節的斤斤計較,而造成分析的癱瘓,導致最現實的應用程式碼無法快速產出,喪失整體團隊的開 ...

虛擬主機的頻寬限制之無奈

好不容易,將 Blog 移轉到國內的虛擬主機廠商,總算對於頻寬效能,蠻可以接受的,而透過常見的 cpanel 服務,也是蠻簡易操作,對於虛擬主機的一些限制要求,也逐漸習慣了。 沒想到,我所租借的這一家虛擬主機廠商,小而美,效能佳,也不囉唆,系統建置該提供的基礎建設,包括 PHP, MySQL 等,都很能符合架設 Blog 的需求。但,仍然只有一個問題,頻寬限制太過嚴格了! 我申請的 7GB/每 ...

淺論「類別(Class)是什麼?」

將具有共同特性(包括屬性與操作)的一群物件的集合(sets),抽象化後稱之為類別(class)。分類可以說是物件導向的本質,因為這是解決軟體複雜度的最根本道理,軟體設計者將物件 “分門別類”,才能層次分明、井然有序的管理好在系統內各司其職、各負其責的眾生物件,也因為系統就是藉由各類型物件的互動、分工合作,才能完成越來越形複雜、所被賦予的一個個工作與任務。 那麼,又如何作分類? 分類其實是萬物與 ...

淺論「什麼是物件(Object)?」

既然,主流的程式開發語言,包括 Java, .NET(C#, VB …) 等,甚至連 PHP 這種 ”Script-based”,以網頁設計為主的描述性語言,都已標榜能實現所謂的 “物件導向(object-oriented)” 的開發模式,那麼顯然,軟體分析與設計、包括程式撰寫人員,都必須要能對以 “物件” 為單位的設計與開發,要能有其共識。但 “物件” 卻往往很難被界定與定義,具體的東西,如 ...