五大原则

单一职责原则(SRP)
开放封闭原则(OCP) 
里氏替换原则(LSP) 
依赖倒置原则(DIP) 
接口隔离原则(ISP)

 一、单一职责原则SRP(Single Responsibility Principle)

  是指一个类的功能要单一,不能包罗万象。如同一个人一样,分配的工作不能太多,否则一天到晚虽然忙忙碌碌的,但效率却高不起来。

二、开放封闭原则OCP(Open-Close Principle) 

  一个模块在扩展性方面应该是开放的而在更改性方面应该是封闭的。比如:一个网络模块,原来只服务端功能,而现在要加入客户端功能,那么应当在不用修改服务端功能代码的前提下,就能够增加客户端功能的实现代码,这要求在设计之初,就应当将服务端和客户端分开,公共部分抽象出来。

三、里氏替换原则(the Liskov Substitution Principle LSP) 

  子类应当可以替换父类并出现在父类能够出现的任何地方。比如:公司搞年度晚会,所有员工可以参加抽奖,那么不管是老员工还是新员工,也不管是总部员工还是外派员工,都应当可以参加抽奖,否则这公司就不和谐了。

四、依赖倒置原则(the Dependency Inversion Principle DIP)

  具体依赖抽象,上层依赖下层。假设B是较A低的模块,但B需要使用到A的功能,这个时候,B不应当直接使用A中的具体类: 而应当由B定义一抽象接口,并由A来实现这个抽象接口,B只使用这个抽象接口:这样就达到了依赖倒置的目的,B也解除了对A的依赖,反过来是A依赖于B定义的抽象接口。通过上层模块难以避免依赖下层模块,假如B也直接依赖A的实现,那么就可能造成循环依赖。一个常见的问题就是编译A模块时需要直接包含到B模块的cpp文件,而编译B时同样要直接包含到A的cpp文件。

五、接口隔离原则(the Interface Segregation Principle ISP) 

  模块间要通过抽象接口隔离开,而不是通过具体的类强耦合起来

最新文章

  1. C# 调用webservice 几种办法(转载)
  2. bootstrap css总结
  3. 泛函编程(17)-泛函状态-State In Action
  4. [转载] leveldb日知录
  5. xml操作
  6. 对于System.Net.Http的学习(一)——System.Net.Http 简介(转)
  7. AngularJS自定义指令之可选参数replace
  8. easywechat之微信支付--在thinkPHP5中的使用
  9. Docker笔记一:Docker介绍
  10. Qt+QGIS二次开发:开发环境搭建(超级详细)
  11. suqid透明正向代理
  12. 自学Linux Shell13.3-获得用户输入(read命令)
  13. VS2010错误
  14. Unity 网格 绘制
  15. github开源库(一)
  16. L3-018 森森美图 (30 分)
  17. Type Safety and Type Inference
  18. ES6的新特性(23)——ArrayBuffer
  19. java基础学习总结——数组
  20. 用JQ去实现一个轮播效果

热门文章

  1. python3 高级编程(一) 使用__slots__
  2. MATLAB常用快捷键总结
  3. 【网站部署】flask
  4. Flutter 圆形/圆角头像图片
  5. 如何制作红蓝3d电影(详细教程)
  6. 【Python】机器学习之单变量线性回归 利用批量梯度下降找到合适的参数值
  7. Java学习笔记-包装类
  8. js中遍历对象的属性和值的方法
  9. 日历插件 js
  10. Mysql解析json字符串/数组