单一职责原则表示一个类或者一个方法应该只负责一项职责,也就是说,一个类或者一个方法只做一件事情。
单一职责原则可以降低类或者方法的复杂度,提高其可读性和可维护性。如果一个类或者一个方法负责多项职责,那么它就会变得臃肿和混乱,不利于理解和修改。而且,如果其中一个职责发生变化,就可能影响到其他的职责,导致系统出现错误和风险。
举个例子,假设我们有一个用户类 User,它有两个方法:save() 和 sendEmail()。save() 方法负责将用户信息保存到数据库中,sendEmail() 方法负责给用户发送邮件。这个类就违反了单一职责原则,因为它负责了两项不同的职责:数据持久化和邮件发送。这样的设计有以下几个缺点:
为了遵循单一职责原则,我们应该将 User 类拆分为两个类:UserRepository 和 UserMailer。UserRepository 负责将用户信息保存到数据库中,UserMailer 负责给用户发送邮件。这样的设计有以下几个优点: