单一职责原则讲述.pptx

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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 { //注册失败 } } ?} 已加载完毕!

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档