物件設計 角色 責任和協作(一)

2021-08-29 04:31:50 字數 1354 閱讀 3360

第一章:設計概念:

1·1

-----

這一節主要是講軟體是由物件所組成,而物件個體並不是單一的個體,而是對應相應角色,並與其它物件互動通訊以達到軟體運作的個體。另乙個方面則是物件並不只是對現實世界的模擬,而物件的設計可以是對現實世界不存在的物件,比如說邏輯。

·「軟體是由各部份組成,軟體的各部份——軟體物件——通過傳送訊息來完成資訊和行為上的互動。」:如何傳送訊息呢?要傳送訊息,那麼就要知道要向誰傳送訊息,那麼如何得知別的物件的存在呢?我這樣理解,一種是物件動態生成別的物件,別一種則是把別的物件告訴這個物件,而傳送訊息的方式就是對別的物件的方法進行呼叫,讓別的物件去實施它的職責,以達到該物件所要完成的行為動作。這裡的資訊應該是觸發資訊,比如說一次動作請求,更為確切的就比如要查乙個客戶的資料,那麼就會觸發相關的物件進行互動,以得到相關的回答。

·「我們將真實世界中難以理解的物件分解為更小、更易於管理的軟體物件,我們還可能創造出真實世界中不存在的新物件。……我們衡量成功的標準確無誤是軟體滿足應用需求的程度,而不是對現實世界的模擬度。」:系統是由眾多小物件組成的,那麼我們就要分析系統,到底是由哪些物件組成,並且規定這些物件的職責和功能。那麼物件就必須是現實世界必然存在的嗎?不一定,最簡單的資料庫訪問,我們為了規範化訪問過程,我們會設計乙個dao物件,為了顯示資料,我們可能要設計乙個專門處理顯示的物件,而這些都是現實中不存在的。然物件的設計並不是對現實世界的完全模擬,而是針對需求進針對性的模擬,不必要模擬往往會增加系統的複雜性,以至專案最終失敗。

·「由於物件具有機械行為,並且能夠插接在一起相互工作,因此它們能夠組成非常複雜的機器。為了管理這種複雜性,我們將系統行為指派到具有特定角色的物件中。」:亦即把職責和功能分派到各個物件,以簡化複雜性。其實按照我的理解,這個設計的過程就是乙個更為複雜的過程,相對來說複雜性並沒有得到簡化。

·應用系統 = 一組相互作用的物件

物件 = 乙個或多個角色的實現

角色 = 一組相關的責任

責任 = 執行一項任務或掌握某種資訊的義務

協作 = 物件或角色(或兩者)之間的互動

契約 = 描述協作提綱的一種協定

這裡對角色和物件有點不明,如若沒有學過設計模式的人,會很輕易的認為角色是「類」,而物件就是類的乙個例項而已。但是如若有學過設計模式,那麼我們就有另一種看法,這裡,角色規定的是一組責任,而這裡的物件是這個責任的一種實現,而且乙個角色可以用多種實現的物件,我們這樣看,我們定義了乙個介面,指定了要完成這個介面指定責任集的類,那麼這些類就是前面所說的物件,這是面向介面程式設計的要義。那麼這本書這裡所說的是前面一種情況呢還是後面這種情況呢?不得而知。

---

學習是一種快樂,而且這本書裡有很多我一直尋求的正解,希望能解開一直以來的迷惑。

基於角色的許可權設計(一)

基於角色的許可權設計 一 在任何系統中,許可權設計是最基礎的東西,本文給出乙個基於角色的許可權設計的循序漸進的設計方案。在許可權系統中,功能 許可權 是最小的單位,比如起草新聞 編輯新聞 審核新聞 刪除新聞等,而角色是一類功能的集合,比如新聞編輯這個角色,他可能有起草新聞 編輯新聞等功能集合,而責任...

基於角色的許可權設計(一)

在任何系統中,許可權設計是最基礎的東西,本文給出乙個基於角色的許可權設計的循序漸進的設計方案。在許可權系統中,功能 許可權 是最小的單位,比如起草新聞 編輯新聞 審核新聞 刪除新聞等,而角色是一類功能的集合,比如新聞編輯這個角色,他可能有起草新聞 編輯新聞等功能集合,而責任編輯他可能就有更多的許可權...

基於角色的許可權設計 一

在任何系統中,許可權設計是最基礎的東西,本文給出乙個基於角色的許可權設計的循序漸進的設計方案。在許可權系統中,功能 許可權 是最小的單位,比如起草新聞 編輯新聞 審核新聞 刪除新聞等,而角色是一類功能的集合,比如新聞編輯這個角色,他可能有起草新聞 編輯新聞等功能集合,而責任編輯他可能就有更多的許可權...