tij3筆記 001

•    抽象過程
萬物皆對象
程序是對象的集合,它們彼此通過發送消息來調用對方
每個對象擁有由其對象所構成的存儲
每個對象都有其類型(type),每個對象都是某個類(class)的實例(instance)
某一特定類型的對象都可以接收(reseive)同樣的消息
更簡潔地說:對象擁有狀態(state),行爲(behaviour)和標識(identity)

•    對象都有接口
類實際是一個數據類型。創建的對象所能完成的請求由對象的接口(interface)決定,接口則由類型(type)決定。

•    對象提供服務
將對象視爲“服務提供者”。
每個對象提供一些服務,它們構成的程序也便通過此來提供服務,所以編寫程序解決問題也即製作一組能爲解決問題提供最佳服務的對象。
應不斷分析需要的對象:要解決什麼問題?這些對象提供什麼服務?還需要什麼對象?這樣便將問題分解成爲一組對象。
視對象爲服務提供者還可提高對象的內聚性(cohesion)。內聚性高是高質量軟件設計基本要求,即指軟件的各種組件(對象,方法或類庫)應能很好的組裝在一起。
這也提醒:不要向一個對象塞過多功能,一個良好的oo設計中每個對象都應該只做一件事且只做好一件事而不是多多益善。
同時,這可以幫助別人理解代碼或者複用對象。

•    隱藏實現
將程序員按照角色分爲類創建者和客戶端程序員。
類創建者構建類,該類向客戶端程序員暴露必需的部分,隱藏其它所有部分。

控制訪問權限的首要原因是禁止客戶程序員去碰他們不該碰的東西--那些數據類型內部運算必須的東西,只允許他們接觸解決問題必須的接口。
第二個原因是允許類庫設計人員能在不打擾客戶程序員的情況下修改類的內部工作方式。

三個設置類中邊界的關鍵詞:public,private和protected,見名知義。(繼承類能夠訪問protected成員。)
java的缺省訪問權限稱package access權限。在這種權限下,類可以訪問同在一個包中的其它類的成員(同在一個package中的未定義權限的類可以互訪)。

•    複用具體實現
複用一個類:將這個類的對象置於某個新類中,稱爲”創建一個成員對象”。新的類可以由任意數量,任意類型的其它對象以任意方式組成,來讓那個新的類提供你所設計的功能。這是用已有的類合成新的類,因此這一概念稱爲合成(composition);若這過程爲動態合成則通常稱聚合(aggregation)。組合常被視爲“has-a”(擁有)關係。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章