2008-10-26 57 views

回答

1

我通常有代表用戶,角色和權限的類。屬於角色和角色的用戶被授予權限。訪問其他對象需要權限。在UML中,我假設你將Role建模爲一個抽象基類,並且有多個不同的實現,每個角色都有一個實現。

通常,我將Permission建模爲包含可讀,可寫,可刪除業務實體類(可能包含屬性排除或包含)的集合的對象。每個角色都有一個權限。該權限允許或拒絕訪問一個或多個其他類。權限默認被拒絕,並且只有當該類處於所請求操作的適當集合中時才允許訪問。

0

我喜歡想象一個文件系統對象擁有許多標準方法,每個標準方法都有相關的權限。

有9種方法/權限通常感興趣:(用戶,組,其他)*(讀取,寫入,執行)。此外,還有像Sticky和SetUID等選項。

文件系統對象與一個用戶和一個組相關聯。用戶與任何數量的組相關聯。

當前用戶與任意數量的組相關聯。

以上是非常標準的類圖東西。文件系統對象,用戶,組,關聯。文件系統對象有一堆屬性和9個規範方法。

對允許的內容的約束沒有整齊的圖。這是一組規則表達式。第一個是設置使用哪個權限(用戶,組或其他),然後是集合中的哪個權限(讀取,寫入或執行)。我可以用一些具體對象(Unix有user,group,other)來定義一類用戶,還有一些具有一些具體對象的操作類(Unix有讀,寫,執行)。然後您可以使用兩個關聯來定義權限:一個關聯到用戶類,另一個關聯到操作類。

我認爲只列出一組完整的方法可以更容易地展示組合用戶類實例和操作類實例的組合。