设计模式

设计模式

设计模式认知

为解决特定场景下的问题而去定义的解决方案, 说起来又比较模糊, 但是设计模式又是实实在在存在的, 针对开发的一些问题, 有比较好的解决方案, 经过大量的时间和验证, 达到了大家的认可, 才有了这23种设计模式, 构建出可复用, 可维护代码的经验法则

设计模式有什么好处呢? 项目的结构更加清晰, 更加有利于项目的后期维护

设计模式的基本原则

  1. 开闭原则 ( Open Closed Principle, OCP ) 对模块拓展开放, 对修改关闭, 比较理想化
  2. 里氏替换原则 ( Liskov Substitution Principle, LSP ) 任何类可以出现的地方, 子类一定可以出现, 子类和父类可以相互替换, 子类可以替换父类的所有方法, 这里是不是想起多态
  3. 依赖倒转原则 ( Dependency Inversion Principle, DIP ) 接口, 抽象不依赖与细节, 细节依赖于抽象
  4. 接口隔离原则 ( Interface Segregation Principle, ISP ) 接口中只做必要的事情, 不做其他的不相关事情
  5. 合成/聚合复用原则 ( Composite/ Aggregate Reuse Principle, CARP ) 需要从一个类扩展出另外一种方法, 尽量不要使用继承, 使用新的方法
  6. 最小知识原则 ( Principle of Least Knowledge, PLK ) 两个类没有直接的通信, 比如说AB两类, 没有直接同行, 那么我们来使用一个C类来作为一个中间类
  7. 单一职责原则 ( Single responsibility principle, SRP ) 一个类只负责一个功能领域

此处是我们设计模式原则的demo, 大家可以去我的git下载, 欢迎star
下载链接 : demo地址

设计模式的类型

  1. GOF设计模式
  2. 并发设计模式
  3. 框架级别的设计模式

23种设计模式的分类

  1. 创建型模式: 5种
    单例模式, 抽象工厂模式, 建造者模式, 原型模式, 工厂模式
  2. 并发设计模式: 7种
    代理模式, 组合模式, 桥接模式, 享元模式, 外观模式, 装饰模式, 适配器模式
  3. 框架级别的设计模式: 11种
    观察者模式, 访问者模式, 中介者模式, 解释器模式, 策略模式, 迭代器模式, 命令模式, 状态模式, 备忘录模式, 模板方法模式, 责任链模式

像我们平常的开发中用到的KVO, 通知都属于观察者模式, target\action属于命令模式, delegate属于代理模式 ( 类似适配器模式 ) , model和view中数据的通道, 也就是Controller属于中介者设计模式, MVC框架也可以理解为一个复合设计模式

UML建模语言 ( 简单介绍 )

UML统称建模语言, 面向对象软件的标准化建模语言
双向关联
单项关联
聚合关系
组合关系 相对独立
依赖关系 a类创建创建b类中的对象,一个雷实例化另一个类
继承关系
实现关系 实现类中接口
例如下面是SDwebimage展示图


设计模式_第1张图片
SDWebimage.png

时序图
例如下面是微信支付的展示图


设计模式_第2张图片
微信支付.png

技术交流q群150731459

你可能感兴趣的:(设计模式)