我认为单独来看并不能。一个类可以有一个职责,但在过程中做多个事情,并为每组需要执行的事情实现一个接口以履行其职责。
此外,在Java中,接口可用于说明类具有哪些属性(例如Comparable
和Serializable
),但并未说明类的职责。
然而,如果一个类实现多个接口,每个接口都对应一个职责,那么就会违反这个原则。
可能,但不一定。
接口并不是一个职责。有一种非常强大的架构模式(链接)将接口视为定义对象在应用程序中可能扮演的角色。
想想这意味着什么。您可以拥有一个Person
类,其中包含各种接口(让我们使用.NET约定进行命名)。
class Person : IAmAStudent, IDrawSocialSecurity, IAmACitizen {
public SocialSecurityNumber getSocialSecurityNumber() {
return this.ssn;
}
private SocialSecurityNumber ssn;
public Person(SocialSecurityNumber ssn) { this.ssn = ssn; }
}