OO設計中物件的建立和使用 三

2021-04-17 04:46:41 字數 1265 閱讀 8438

在設計中,實體這個概念有不同的視角,每個視角表現為某一類操作的內聚。而內聚為認是設計的傳統美德,因為強內聚的實體容易被理解,更少的藕合,更好的粒度,更容易測試。

如果我們努力使實體的操作呈現出更清晰的視角,我們就改進了內聚性,包括狀態的內聚、功能的內聚、職責的內聚,這將給我們帶來很多的好處。

劃分使用視角和建立視角可以有效的提公升內聚性。這麼作也意味有乙個內聚的實體負責建立工作,一般是工廠類,同樣的,我們也不需要關心它如果和使用相結合,最後實現整體的功能。

實際上,在我們設計中,掌握這些原則意味著用各種使用關係來確定各種工廠類,工廠類則專注於例項的建立(可以參考一些知名的建立模式)

在《設計模式精解》一書中,alan shalloway and james trott描述了這樣一種觀點"根據上下文設計",其中,他們說,乙個設計的某些方面形成了一段上下文,通過這樣的上下文可以推導出設計的其它部分。這是乙個比較巨集觀的概念,這個概念意味著模式在設計、分析和實現中所扮演的角色,不過論題的關鍵是這樣的:

在我的某個專案中,我施展我的設計才華。我發現我一慣的作法幾乎是不經意的,在我關注我的物件是什麼之前,我從不關心它如果被例項化。我假設它們已經存在,而把注意力轉移到物件之間的關係上。我假設只要時機到了,物件就會被順理成章的建立。

隨後,他們總結乙個更有力的設計原則:

原則:先認真考慮系統的需要,再考慮如何實現它。

劃分建立和使用,就是有效的支援了這一原則,因此也帶來了很多優勢。系統的內聚性會更強,可擴充套件性和靈活性會更好,維護將會變的相當的簡單。

經常會發現一項好的技術會改進另一項好的技術,形成強強聯手。

例如,測試

驅動開發期望編寫的類有更好的可測試性(通過前期關注測試),這也意味更強的內聚性,更好的粒度,等等。。。分離使用和建立的原則可以帶來更優的可測試性,你可以分別測試它們,你可以放入乙個假的物件來消除依賴性,使測試工作更容易。

設計模式也是這種觀點的支持者。其中最值得稱道的是"通過抽象隱藏變化"和"開放封閉原則"這些都給我們帶來了很多改善。

然而,使用物件不需要知道物件的型別(知道的僅僅是抽象),然後另外再關注建立的問題。這就產生了工廠類,這就很自然把客戶物件從複雜問題中分離出來。

我們正在建立自己的專業特點,我們搜尋各種有價值的特性、原則、實踐方法和模式。以些形成我們智慧型的基礎。

尋找這些思想,和我們現有的思想整合,我們將更成功。給我們的客戶、公司文化和經濟方面都能增添價值。這也能幫助我們更好的溝通和協作,建立乙個鼓勵創新的團隊氣氛。

最後,我們所作的工作會更有趣。我相信這是一條正確的道路。

JS中物件的建立和使用

直接建立 先建立object類物件,再向物件新增成員。var person new object person.name jt person.print function 函式表示式 呼叫 person.print 以上過程可封裝,減少 冗餘 function getperson name 張三 p...

核心物件的建立和使用

1 程序核心物件控制代碼表 2 建立與關閉核心物件 3 程序間核心物件控制代碼的共享 1 程序核心物件控制代碼表 當乙個程序初始化時,系統會為它分配一張核心物件控制代碼表。這個表只用於管理核心物件控制代碼。gdi和使用者物件不會影響到這張表。表中的每一項有 4個域。即控制代碼id 物件記憶體位址,訪...

物件導向 OO 的程式設計 建立物件

為了避免大量重複 產生,可採用以下方法建立物件 1 function createperson name,age,job 89 var person1 createperson bob 23,doctor 10var person2 createperson lily 21,student 其實就是...