用户 class 是否应该实施 IPrincipal 和 IIdentity
Should User class implement IPrincipal and IIdentity
我正在为 asp.net web api 2 构建自己的基于令牌的身份验证,我对 user
class.
有疑问
目前我的 user
class 实现 IPrincipal
和 IIdentity
,但我不知道什么是最佳实践。你会分开 IPrincipal
和 IIdentity
并使 IIdentity
实现成为 IPrincipal
的成员吗?
目前我使用以下 class 声明
class User : IPrincipal, IIdentity
谢谢!
Would you divide IPrincipal and IIdentity and make the IIdentity
implementation a member of IPrincipal?
我认为这不是一个好方法,因为如果 Identity
与 IPrincipal
相似,则不应该有任何分开的理由。
此外,截至目前,您的 class 实现了这两个接口。这意味着您的 class 实现了两个接口的方法。如果您稍后出于任何原因决定您的 class 不应该实现一个或另一个接口,您应该只需要删除绑定到您要删除的接口的方法的实现。
除上述内容外,请记住以下几点:
The interface-segregation principle (ISP) states that no client should
be forced to depend on methods it does not use
这是五个 SOLID 原则之一,这些原则是面向对象编程和设计的一些基本原则。
我正在为 asp.net web api 2 构建自己的基于令牌的身份验证,我对 user
class.
目前我的 user
class 实现 IPrincipal
和 IIdentity
,但我不知道什么是最佳实践。你会分开 IPrincipal
和 IIdentity
并使 IIdentity
实现成为 IPrincipal
的成员吗?
目前我使用以下 class 声明
class User : IPrincipal, IIdentity
谢谢!
Would you divide IPrincipal and IIdentity and make the IIdentity implementation a member of IPrincipal?
我认为这不是一个好方法,因为如果 Identity
与 IPrincipal
相似,则不应该有任何分开的理由。
此外,截至目前,您的 class 实现了这两个接口。这意味着您的 class 实现了两个接口的方法。如果您稍后出于任何原因决定您的 class 不应该实现一个或另一个接口,您应该只需要删除绑定到您要删除的接口的方法的实现。
除上述内容外,请记住以下几点:
The interface-segregation principle (ISP) states that no client should be forced to depend on methods it does not use
这是五个 SOLID 原则之一,这些原则是面向对象编程和设计的一些基本原则。