- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单一职责原则讲述
单一职责原则(SRP)
单一职责,强调的是职责的分离,在某种程度上对职责的理解,构成了不同类之间耦合关系的设计关键,因此单一职责原则或多或少成为设计过程中一个必须考虑的基础性原则。?
关于单一职责原则,其核心的思想是:
一个类,最好只做一件事,只有一个引起它变化的原因。
原理:
如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守单一职责原则。此原则的核心就是解耦和增强内聚性。
问题由来:
之所以会出现单一职责原则就是因为在软件设计时会出现以下类似场景:
T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。也就是说职责P1和P2被耦合在了一起。
产生原因:
没有任何的程序设计人员不清楚应该写出高内聚低耦合的程序,但是很多耦合常常发生在不经意之间,其原因就是:
职责扩散:因为某种原因,某一职责被分化为颗粒度更细的多个职责了。
解决办法:
遵守单一职责原则,将不同的职责封装到不同的类或模块中。
下面以一个用户管理为例演示单一职责原则。在业务逻辑层上定义类UserManager,在数据访问层定义类UserDao,在体对象层定义类User,每个类具有不同的职责和功能。
private String username;
private String userpass;
private int role;
//………….各个属性的get、set方法
}
?
public class UserDao extends BaseDao {
//返回所有用户
public ListUser getAllUser() {
ListUser userList = new ArrayListUser();
......//访问数据库
return userList;
}
//根据用户名查找用户
public User getUserByName(String name) {
User user=null;
String sql=SELECT * FROM userdetail WHERE username=?;
...//查找相应用户名的用户
return user;
}
//添加新用户
public boolean addUser(User user) {
//返回true 表示成功
}
}?
public class UserManager {
private UserDao userDao = new UserDao();
//验证用户名和密码
public boolean CheckUser(String name,String pass) {
boolean flag=false;
User user =userDao.getUserByName(name);
if(user!=nulluser.getUsername().equals(pass)) {
flag=true;
}
return flag;
}
//注册新用户
public void registUser(User user) {
if(userDao.getUserByName(user.getUsername()) !=null) {
System.out.println(用户名已存在);
return;
}
if(UserDao.addUser(user)) {
//注册成功
}else {
//注册失败
}
}
?}
已加载完毕!
您可能关注的文档
最近下载
- 合作开发农贸市场项目协议书7篇.docx
- BS EN 28510-1-2014 胶粘剂 柔性粘结刚性试件组件的剥离试验 90°剥离.pdf VIP
- 2023-2024学年五年级下册数学冀教版 期中测试卷(含答案) .pdf VIP
- 机器学习_聚类.ppt VIP
- (安装工程)广联达BIM5D软件教程-学习课件.ppt VIP
- 采暖系统施工方案.doc VIP
- 必威体育精装版2023版知识产权贯标GBT29490表单 知识产权法律法规及其他要求合规性评价表[知识产权合规管理体系文件].docx
- 一种铁路车辆能量回收装置和铁路车辆.pdf VIP
- 必威体育精装版2023版知识产权贯标GBT29490表单 知识产权风险和机遇识别评价清单[知识产权合规管理体系文件].docx
- 加热炉专利申说明书.pdf VIP
文档评论(0)