1.遵循单一职责原则

定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。
一个类只专注于做一件事; 
高内聚,低耦合;

实例:

普通的手表如果有一个指针坏了,那么手表将不再转动,而机械表他的时,分,秒,如果有一个指针坏了,其他的并不影响其他指针的转动,这就遵循了单一职责原则。

2.开放-封闭原则

概念:

官方说法是 软件实体(模块、类、函数等)应该可以扩展,但是不可以修改。也就是说软件对扩展开放,对修改关闭。

需要说明的是,对修改关闭不是说软件设计不能做修改,只是尽量不要做不必要的修改

对拓展开放,对修改关闭(尽可能不动原有代码进行拓展); 
高内聚,低耦合; 
为达到目的,需对系统进行抽象化设计(关键);

UML举例:

3. 里氏代换原则(LSP)

里氏代换原则由Barbar Liskov(芭芭拉.里氏)提出,是继承复用的基石。

概念:
子类必须能够替换它们的基类型,基类与子类可互换,客户端没有察觉情况下; 
低耦合; 
很容易实现同一父类下的各个子类的互换,而客户端可以毫不察觉;

4.依赖倒置原则

这个是开闭原则的基础,具体内容:面向接口编程,依赖于抽象而不依赖于具体。写代码时用到具体类时,不与具体类交互,而与具体类的上层接口交互。

5.接口隔离原则(Interface Segregation Principle)

使用多个专一功能的接口比使用一个总接口总要好,但不能过渡; 
一个接口不能过于臃肿; 
高内聚 
会使一个软件系统功能拓展时,修改的压力不会影响到别的对象那去;

6.迪米特法则(Law of Demeter)

又叫最少知识原则; 
对象与对象之间应该使用尽可能少的方法来关联,避免千丝万缕的关系; 
低耦合; 
类知道其他类应尽量少; 
类可以访问其他类的方法或者属性也应尽量少;

如果Lily和Jack自己做hamburg那么就会与Vegetable、Meat、Bread产生千丝万缕关系。

上图,则由KFC来做,这样Lily和Jack就只与Hamburg有关关联,与材料就没有关联了

最新文章

  1. 财务报表 > 现金流表的直接法,间接法,Cash Flow from Operating Activites
  2. TcpClient类与TcpListener类
  3. sql是如何执行一个查询的!
  4. 树莓派配置静态ip
  5. 【读书笔记】iOS-装箱
  6. linux和Dos下换行符转换
  7. select、poll、epoll用法
  8. ER图与UML图
  9. 在.Net中执行js
  10. python库安装(numpy+scipy+matplotlib+scikit_learn)
  11. C#中的DBNull、Null、""和String.Empty
  12. IIS 加载 JSON 错误 404 解决办法
  13. C#制作ActiveX插件
  14. Dev gridcontrol 添加多列按钮
  15. Python学习笔记-循环语句
  16. 测试那些事儿—postman入门介绍
  17. 骨骼动画的原理及在Unity中的使用
  18. es7 class装饰器
  19. Ubuntu 部署 nginx
  20. 改变html元素

热门文章

  1. python中lambda使用
  2. Androidstudio中导入内部依赖模块总结
  3. 解决 Invalid signature file digest for Manifest 问题
  4. Nginx 之 内存池
  5. Keras学习-1
  6. Asp.Net MVC以JSON传值扩展方法
  7. STL make_heap push_heap pop_heap sort_heap
  8. hadoop记录(一)
  9. GitHub上最热门的11款开源安全工具
  10. Spring-1-E Game(HDU 5011)解题报告及测试数据