博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【设计模式】面向对象六大原则
阅读量:6273 次
发布时间:2019-06-22

本文共 1156 字,大约阅读时间需要 3 分钟。

img_a2c517c88581d62612a25018678f05fd.png
设计模式

设计模式

设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化。设计模式分为三种类型,分别是:创建型模式、结构型模式,行为型模式。

23种设计模式

  • 创建型模式,共5种:、、、建造者模式、原型模式。
  • 结构型模式,共7种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  • 行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

六大原则

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

定义:一个类应只包含单一的职责。

  • 如果一个类职责过多,代码量就多,而使用起来显得过分冗余,不利于复用。
  • 如果修改某个职责,可能影响另一个职责。

2,开放封闭原则(Open - ClosedPrinciple ,OCP)

定义:一个模块、类、函数应当是对修改关闭,对扩展开放。

  • 修改原有的代码可能会导致原本正常的功能出现问题。
  • 当需求改变时,最好通过扩展来实现,增加新的方法或类满足需求,而不是去修改原有代码。

3,里氏代换原则( Liskov Substitution Principle ,LSP )

定义:使用父类的地方能够使用子类来替换,反过来,则不行。

  • 使用子类对象去替换父类对象,程序将不会产生错误。
  • 程序中尽量使用基类类型来对对象进行定义,如父类的子类引用,而在运行时再确定其子类类型,用子类对象来替换父类对象。

4,依赖倒转原则( Dependence Inversion Principle ,DIP )

定义:抽象不应该依赖于细节,细节应当依赖于抽象。

  • 即要面向接口编程,而不是面向具体实现去编程。
  • 高层模块不应该依赖低层模块,应该去依赖抽象。
  • 方法定义时,传入对象用抽象类型,实际使用时传入子类对象。

5,接口隔离法则(Interface Segregation Principle,ISL)

定义:一个类对另一个类的依赖应该建立在最小的接口上。

  • 一个类不应该依赖他不需要的接口,接口的方法全要用得到。
  • 接口粒度要尽可能小,尽量不能再分割。一个接口的方法过多,可以拆成多个接口。

6,迪米特法则(Law of Demeter, LoD)

定义:一个类尽量不要与其他类发生关系

  • 一个类对其他类知道的越少越好,耦合越小。导入的东西越少越好。
  • 当修改一个类时,其他类的影响就越小,发生错误的可能性就越小。

附件

设计模式Demo

GitHub源码:

转载地址:http://mumpa.baihongyu.com/

你可能感兴趣的文章
Oracle取月份,不带前面的0
查看>>
Linux Network Device Name issue
查看>>
IP地址的划分实例解答
查看>>
如何查看Linux命令源码
查看>>
运维基础命令
查看>>
Linux下的lds链接脚本简介(二)
查看>>
入门到进阶React
查看>>
C++每日练笔之日期类(基类)
查看>>
SVN 命令笔记
查看>>
修复Postfix 的Relay access denied问题
查看>>
检验手机号码
查看>>
重叠(Overlapped)IO模型
查看>>
ffmpeg study 1
查看>>
Git使用教程
查看>>
使用shell脚本自动监控后台进程,并能自动重启
查看>>
Flex&Bison手册
查看>>
MySQL 5.6 for Windows 解压缩版配置安装
查看>>
solrCloud+tomcat+zookeeper集群配置
查看>>
/etc/fstab,/etc/mtab,和 /proc/mounts
查看>>
Apache kafka 简介
查看>>