单一职责的简称是SRP(Single Responsibility Principle),这是一个备受争议的设计原则,如果你和别人争吵这个原则是屡试不爽的。
单一职责
顾名思义,单一职责就是尽量一个接口实现一个功能,其实本质就是解耦,不要把所有功能都融合到一给接口里面。
职责的划分
主要根据不同的角度划分,比如,
- 1、从类组成,划分为属性的操作,和行为操作两种。
- 2、从数据库操作的不同作用,划分为数据库的连接操作,和增删改查基本操作。
举例说明
IUserInfo |
---|
Void setPassWord(String passWord) |
Void setUserID(String userId) |
String getUserID() |
String getPassWord() |
Boolean changePassword(String passWor) |
Boolean changeUserId(String userId) |
这是一个很简单的类图,相信大部分程序员都能看明白,在这个接口类中,用户的属性和行为放在一共接口里面没有分开,可以说设计的很糟糕,下面我们来对他来进行拆分。
IUserBo |
---|
Void setPassWord(String passWord) |
Void setUserID(String userId) |
String getUserID() |
String getPassWord() |
负责用户属性的BO类接口
IUserBiz |
---|
Boolean changePassword(String passWor) |
Boolean changeUserId(String userId) |
负责用户的行为Biz接口
IUserInfo userInfo = new UserInfo();
//对实体赋值
IUserBo userBo = (IUserBo) userInfo;
userBo.setPassword("abc");
//处理业务逻辑操作
IUerBiz userBiz = (IUserBiz) userInfo;
userBiz.changeUserID("abc");
总结
根据用户的属性和行为划分接口,这就是面向对象编程的一种体现。在实际开发中我们默认就会这样去创建接口,其实就是遵循这单一职责原则,以后我们在设计接口的时候,不要让一共接口去做太多的事,而是考虑系统的扩展性和延升性去考虑,为后期项目的扩张提供一共可持续性发展的接口,可以有效的提升性能。