设计模式之简介篇

前言

为什么要学习设计模式?当公司项目需要重构,但是不知道如何下手,做到高内聚低耦合。为了更好的理解框架源码设计思想,封装中间件。为了让代码更好重用、可读、可靠、可维护、可拓展。总而言之学习设计模式是一个高级研发工程师必不可少的技能。

1. 设计模式六大原则

  • 设计模式是站在设计原则的基础之上的,所以在设计模式之前,有必要对这些设计原则先做一下了解
  • 软件设计开发原则
    • 为了了让的代码更更好重⽤用性,可读性,可靠性,可维护性
    • 诞⽣生出了了很多软件设计的原则,这6⼤大设计原则是我们
      要掌握的
    • 将六⼤大原则的英⽂文⾸首字⺟母拼在⼀一起就是SOLID(稳定
      的),所以也称之为SOLID原则

1.1 单一职责原则

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

1.2 开闭原则

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

1.3 里氏替换原则LSP

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

1.4 依赖倒转原则

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

1.5 接口隔离原则

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

1.6 迪米特法则

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

2. 那么大家常说的设计模式是什么?

  • 设计模式简介

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

    • 在1994年,由四位作者合成GOF(全称Gang of Four)四人合著出版了一本名为Design Patterns -Elements of Reusable Object-Oriented Software. 他们所提出的设计模式主要是基于以下的面向对象设计原则。
    1. 对接口编程而不是对实现编程
    2. 优先使用对象组合而不是集成
  • 常见的三大设计模式分类

    • 创建型模式:提供了一种在创建对象的同时隐藏创建逻辑的方式,使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活
      常用:工厂模式、抽象工厂模式、单例模式、建造者模式
      不常用:原型模式
    • 结构型模式:关注类和对象的组合。继承的概念被用来组合接口和定义组合对象获得新功能的方式
      常用:适配器模式、桥接模式、装饰器模式、代理模式
      不常用:组合模式、外观模式、享元模式
    • 行为型模式:特别关注对象之间的通讯
      常用:责任链模式、迭代器模式、观察者模式、状态模式、策略模式、模板模式
      不常用:备忘录模式、命令模式
      几乎不用:访问者模式、中介者模式、解释器模式
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值