美文网首页
1、设计模式精髓

1、设计模式精髓

作者: 日落_3d9f | 来源:发表于2021-05-10 09:03 被阅读0次

设计模式的六大原则

设计模式是站在设计原则的基础之上的,所以在学习设计模式之前,有必要对这些设计原则先做一下了解

软件设计开发原则

  • 为了让的代码更好重用性,可读性,可靠性,可维护性
  • 诞生出了很多软件设计的原则,这6大设计原则是我们要掌握的
  • 将六大原则的英文首字母拼在一起就是SOLID(稳定的),所以也称之为SOLID原则

单一职责原则

  • 一个类只负责一个功能领域中的相应职责,就一个类而言,应该只有一个引起它变化的原因
  • 是实现高内聚、低耦合的指导方针
  • 解释:
    • 高内聚
      • 尽可能类的每个成员方法只完成一件事(最大限度的聚合)
      • 模块内部的代码, 相互之间的联系越强,内聚就越高, 模块的独立性就越好
    • 低耦合: 减少类内部,一个成员方法调用另一个成员方法, 不要有牵一发动全身

开闭原则

对扩展开放,对修改关闭,在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果

里氏替换原则LSP

  • 任何基类可以出现的地方,子类一定可以出现
  • 在程序中尽量使用基类类型来对对象进行定义,而在运行时再确定其子类类型,用子类对象来替换父类对象
  • controller->service->dao

依赖倒转原则

  • 是开闭原则的基础,针对接口编程,依赖于抽象而不依赖于具体
  • 高层模块不应该依赖低层模块,二者都应该依赖其抽象

接口隔离原则

  • 客户端不应该依赖那些它不需要的接口
  • 使用多个隔离的接口,比使用单个接口要好,降低类之间的耦合度

迪米特法则

  • 最少知道原则,一个实体应当尽量少地与其他实体之间发生相互作用,使得系统功能模块相对独立
  • 类之间的耦合度越低,就越有利于复用,一个处在松耦合中的类一旦被修改,不会对关联的类造成太大波及
  • 通过引入一个合理的第三者来降低现有对象之间的耦合度

讲解设计模式到底是什么

设计模式简介

  • 由来:是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的
  • 好处:为了重用代码、让代码更容易被他人理解、保证代码可靠性
  • 坏处:对不熟悉设计模式的同学,看起来更绕更难理解

什么是GOF( Gang of Four)

在 1994 年,由 四位作者合称 GOF(全拼 Gang of Four)四人合著出版了一本名为 Design Patterns - Elements of Reusable Object-Oriented Software. 他们所提出的设计模式主要是基于以下的面向对象设计原则。

1)对接口编程而不是对实现编程。
2)优先使用对象组合而不是继承

常见的三大设计模式分类

  • 创建型模式
    提供了一种在创建对象的同时隐藏创建逻辑的方式,使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活

常用:工厂模式、抽象工厂模式、单例模式、建造者模式
不常用:原型模式

  • 结构型模式
    关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式

常用:适配器模式、桥接模式、装饰器模式、代理模式
不常用:组合模式、外观模式、享元模式、

  • 行为型模式
    特别关注对象之间的通信

常用:责任链模式、迭代器模式、观察者模式、状态模式、策略模式、模板模式
不常用:备忘录模式、命令模式
几乎不用:访问者模式、中介者模式、解释器模式

相关文章

  • 1、设计模式精髓

    设计模式的六大原则 设计模式是站在设计原则的基础之上的,所以在学习设计模式之前,有必要对这些设计原则先做一下了解 ...

  • 每天一个设计模式·代理模式

    代理模式·原文地址 更多《设计模式系列教程》 更多免费教程 博主按:《每天一个设计模式》旨在初步领会设计模式的精髓...

  • 每天一个设计模式之单例模式

    博主按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript(靠这吃饭)和python(纯...

  • 每天一个设计模式之订阅-发布模式

    博主按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript(靠这吃饭)和python(纯...

  • 窝冬阅读季

    寒冬来了,给自己充点能量 关于移动设计: 移动交互设计精髓 Android应用UI设计模式 触动人心 - 设计优秀...

  • 每天一个设计模式之命令模式

    作者按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现。诚...

  • 每天一个设计模式之责任链模式

    作者按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现。诚...

  • 每天一个设计模式之装饰者模式

    作者按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现。诚...

  • 每天一个设计模式之组合模式

    作者按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现。诚...

  • 每天一个设计模式之享元模式

    作者按:《每天一个设计模式》旨在初步领会设计模式的精髓,目前采用javascript和python两种语言实现。诚...

网友评论

      本文标题:1、设计模式精髓

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