美文网首页
设计模式:我所理解的七大设计原则

设计模式:我所理解的七大设计原则

作者: Marker_Sky | 来源:发表于2018-03-08 15:32 被阅读0次

设计模式,其实只是前人针对某类问题的代码设计经验而已

设计原则(图片来自互联网,侵删)

设计模式应遵循的原则:

  • 单一职责原则:一个类只有一个引起他变化的原因,相关性很高的函数、数据封装到一个类中。
    原因:避免某块函数或数据的变化影响其他类,降低耦合度。

  • 开放封闭原则(开闭原则):一个实体(类、函数、模块等)应该对外扩展开放,对内修改封闭。某实体应该易于扩展,在扩展某类的功能时应该通过添加新的代码来实现而不是修改其内部的代码。
    原因:新功能经常会有,应该易于添加。但是添加新功能不能修改旧的已有功能,容易引起众多 BUG。
    实现:提供一个固有的接口,让所有可能扩展的类实现该接口,需要新功能时添加接口方法。

  • 里氏替换原则:子类必须可以替换掉它们的父类型。子类对象能够替换父类对象,而程序逻辑不变。
    说明:也就是说,利用多态后子类强转为父类对象,子类必须能正常使用父类中的所有函数。多态让一个类(父类)拥有多种形态(子类),任何父类出现的地方都可以由子类替换并且不会出现问题。
    实现:抽象类的设计。抽象类中包含抽象方法,子类继承抽象父类必须实现父类的抽象方法,这样无论哪个子类都可以执行父类中定义的抽象方法。

  • 依赖倒置原则:细节应该依赖于抽象,而抽象不应依赖细节。在 Java 中,抽象一般指抽象类和接口,细节就是实现类,实现接口或继承抽象类产生的类就是细节。也就是说:简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。

"面向接口编程,而不是面向实现编程":通过接口来设置功能,具体类实现接口实现功能。
比如有三个类都实现某接口,这三个实现类都有相同的方法名但其内部实现却可以是灵活多变的,但是这三个类都可以正常调用实现方法也可以进行传递。

  • 接口隔离原则:使用多个专门功能的接口,而不是单一的总接口。
    原因:一个总接口体验是非常糟糕的,实现总接口总会又很多用不到的函数。

  • 合成复用原则:在一个新对象里使用一些已有的对象,使之成为新对象的一部分。
    原因:新对象想使用某些对象中的功能,使用一个单独的类的功能可以继承,但是多个就不可继承了。倒不如使一些对象成为新对象的一部分,就可以通过委派的形式复用现有的某些对象的功能。

  • 最少知识原则(迪米特法则):一个模块或对象应该尽量少地与其他模块或对象发生相互作用,这样当一个模块修改时不会影响太多。
    使用:A 有一个功能,B 想要使用,那么 A 只需要暴露一个函数或返回一个结果给 B 使用,而不是了解 A 如何实现的以及 A 包含的数据细节。

总体来说设计模式可以分为三大类:

  • 创建型:单例模式、工厂模式、抽象工厂模式、建造者模式、原始模式
  • 结构型:适配器模式、装饰模式、代理模式
  • 行为型:模板方法模式、命令模式、迭代器模式、观察者模式、策略模式
参考资料:

1分钟全面了解“设计模式”

相关文章

  • 设计模式:我所理解的七大设计原则

    设计模式,其实只是前人针对某类问题的代码设计经验而已 设计模式应遵循的原则: 单一职责原则:一个类只有一个引起他变...

  • 设计模式 - 七大设计原则(一)

    设计模式 - 七大设计原则(一) 概述 简单介绍一下七大设计原则:开闭原则:是所有面向对象设计的核心,对扩展开放,...

  • 七大原则 / 24种设计模式

    七大原则,24种设计模式七大设计原则:1、单一职责原则【SINGLE RESPONSIBILITY PRINCIP...

  • 设计模式七大原则

    面向对象七大设计原则,以及使用到这些原则的设计模式 1.合成/聚合复用原则(CARP) (有些地方,不将其列入设计...

  • 设计模式原则

    设计模式的基本原则 设计模式的基本原则非常重要,只要真正深入地理解了设计原则,很多设计模式其实就是原则的应用而已,...

  • 设计模式实践

    工厂模式 策略模式 状态模式 责任链模式 代理模式 单例模式 适配器模式 设计模式原则 面向对象的设计模式有七大基...

  • 2020顺F面经

    1、线程池的设计里体现了什么设计模式享元模式2、说说你了解什么设计模式,知道责任链设计模式吗面向对象七大原则:单一...

  • 面向对象:6大原则、24种设计模式

    接上一篇:面向对象介绍 为什么要学设计原则、设计模式? 若不学好经典设计模式,和通过设计模式理解面向对象的原则,你...

  • 设计模式(二):六大原则

    参考:设计模式六大原则简书-快速理解-设计模式六大原则注意:IoC 也属于设计模式吧。 设计模式六大原则(1):单...

  • 设计模式 - 六大原则

    Reference 快速理解-设计模式六大原则 设计模式的六大原则 设计模式之六大原则作者:海子出处:http:/...

网友评论

      本文标题:设计模式:我所理解的七大设计原则

      本文链接:https://www.haomeiwen.com/subject/rthsfftx.html