1、开闭原则       
2、接口隔离原则
3、依赖倒置原则
4、迪米特原则            
5、里氏替换原则    
6、单一职责原则

单一职责原则

针对的问题

类T负责两个不同职责:职责P1和职责P2。当业务发生改变需要修改职责P1,有可能会影响到职责P2的功能。

解决方案

遵循单一职责原则,分别创建两个类:类T1和类T2。类T1负责职责P1的功能,类T2负责职责P2的功能。这样当修改P1代码的时候就不会影响到P2的功能了。

拆分后代码量会增加,理解成本也会增加,什么时候适合使用单一职责原则呢?

如果类型足够简单,方法够少,是可以在类级别去违背单一职责,如果类型复杂,方法多,建议遵循单一职责原则。

不同级别中使用的单一职责原则:

方法级别:一个方法只负责一件事。

类级别:一个类只负责一件事。

类库级别:一个类库应该职责清晰。

项目级别:一个项目应该职责清晰,比如:客户端、管理后台、后台服务、定时任务、分布式引擎等不要放在一个项目中,应该拆分。

系统级别:为通用功能拆分,比如IP定位、日志、在线统计等等。拆分后不仅能保证系统的稳定性还能提高开发效率。

六大设计原则-单一职责原则相关推荐

  1. 设计原则(单一职责原则 开放封闭原则 里氏替换原则 依赖倒置原则 接口隔离原则 迪米特法则)

    设计原则 单一职责原则(SRP) 从三大特性角度看原则: 应用的设计模式: 开放封闭原则(OCP) 从三大特性角度看原则: 应用的设计模式: 里氏替换原则(LSP) 从三大特性角度看原则: 应用的设计 ...

  2. 设计模式原则—单一职责原则

    设计模式概念与作用: 设计模式是一套被反复使用的.多数人知晓.经过分类编目的优秀代码设计经验的总结.特定环境下特定问题的处理方法. 1)重用设计和代码 重用设计比重用代码更有意义,自动带来代码重用 2 ...

  3. Java设计模式七大原则-单一职责原则

    目录 概述:设计模式的目的 设计模式七大原则 单一职责原则 单一职责原则注意事项和细节 概述:设计模式的目的 编写软件过程中,程序员面临着来自 耦合性,内聚性以及可维护性,可扩展性,重用性,灵活性 等 ...

  4. 六大设计原则——单一职责原则

    单一职责原则的英文名称是Single Responsibility Principle,简称是SRP.这个设计原则备受争议,争议之处就是对职责的定义,什么是类的职责,以及怎么划分类的职责.我们先举例来 ...

  5. 学习设计模式 - 六大基本原则之单一职责原则

    设计模式总共有六大基本原则,统称为SOLID (稳定)原则,分别是S-单一职责原则(Single Responsibility Principle), O-开闭原则(Open closed Princ ...

  6. Java设计原则——单一职责原则

    我们一定要给自己提出这样的任务:第一,学习,第二是学习,第三还是学习. 学习从来无捷径,循序渐进登高峰. 目录 一.基本介绍 二.应用实例 1.示例1 2.示例2 3.示例3 三.单一职责原则 设计模 ...

  7. [置顶]       设计模式之六大原则——单一职责原则(SRP)

    定义: 应该有且仅有一个原因引起类的变更. There should never be more than one reason for a class to change. 优点: 1.类的复杂性降 ...

  8. Single Responsibility Principle (SRP) - OO设计的单一职责原则

    前言 Robert C. Martin氏为我们总结了在面向对象的设计(OOD)中应该遵循的原则,这些原则被称为"Principles of OOD",关于"Princip ...

  9. 设计模式六大原则——单一职责原则(SRP)

    定义 就一个类而言,应该仅有一个引起它变化的原因.通俗的说,一个类只负责一项职责. 问题的由来 手机的功能多,但是每一项的功能都不强: 拍摄功能-->专业的摄像机和照相机 手机游戏-->P ...

最新文章

  1. 分享Kali Linux 2016.2第47周虚拟机
  2. Elasticsearch+Kibana 设置连接密码
  3. Spring MVC讲解
  4. HDU - 2795 Billboard(线段树)
  5. 【jzoj】2018/2/2 NOIP普及组——D组模拟赛
  6. (C++版)链表(一)——实现单向链表创建、插入、删除等相关操作
  7. 腾讯视频如何删除观看记录
  8. MySQL中实现并、交、差
  9. File类的创建功能
  10. 七重定位是什么意思_手机后缀名Note、Mix、Mate代表什么意思?现在终于明白了...
  11. 在兼职的情况下,有什么办法可以在年底之前挣5000到一万块?
  12. 自学python好找工作么-学习python后好找工作吗
  13. 流式计算storm应用场景简介
  14. The seventeenth day
  15. 关于Google Instant 你必须知道的6件事情,互联网营销
  16. Ubuntu 14.04 安装 DevStack与遇到的的问题记录
  17. java获取手机屏幕大小_获取手机屏幕大小
  18. 《凤凰项目——一个IT运维传奇故事》关于运维员的那些事
  19. 重构:改善既有代码的设计 阅读笔记
  20. matlab a律非均匀量化,均匀量化与A律PCM非均匀量化实验.doc

热门文章

  1. 考研英语 - word-list-21
  2. 深度学习实战---猫狗大战(pytorch实现)
  3. LNK2019 无法解析的外部符号“XXX”()中引用了该符号,原因之一
  4. 台式计算机用手机流量上网,手机流量怎么给台式电脑用
  5. 我应该是懂居家办公的吧?
  6. 0 17在c语言中什么意思,exit(0)在c语言中是什么意思
  7. 豆伴匠伴学网盘豆伴匠资源下载
  8. 自动注册MSComm控件
  9. c 语言memmove,memmove - [ C语言中文开发手册 ] - 在线原生手册 - php中文网
  10. Security配置