2015-02-23 47 views
4

我正在構建我自己的基於令牌的身份驗證爲asp.net web api 2和我有一個關於user類的問題。如果用戶類實現IPrincipal和IIdentity

目前我的user類實現了IPrincipalIIdentity,但我不知道最佳做法是什麼。你會劃分IPrincipalIIdentity並使IIdentity執行成員IPrincipal

目前我使用下面的類聲明

class User : IPrincipal, IIdentity 

謝謝!

+0

一個類**實現**一個接口 - 它不從其繼承** ...任何類只能從** **單個基類繼承**(但它可以實現多個接口) – 2015-02-23 16:43:07

+0

爲什麼不呢?這些是接口,它們是爲了實現。你的問題是關於在同一個類中實現兩個接口嗎? – dasblinkenlight 2015-02-23 16:44:01

回答

3

您是否將IPrincipal和IIdentity分開,並使IPdentic成爲IPrincipal的成員?

我不認爲這是一個好辦法,因爲如果Identity類似於IPrincipal不應該有任何理由分開。

此外,截至目前您的類實現了兩個接口。這意味着你的類實現了兩個接口的方法。如果您以後由於任何原因決定您的類不應該實現一個或另一個接口,則只需刪除與要刪除的接口關聯的方法的實現。

除了上述牢記以下幾點:

的接口隔離原則(ISP)規定,任何客戶端應該 被迫取決於方法不使用

這是五個SOLID原則之一,這是一些面向對象編程和設計的基本原則。

相關問題