当前位置: 首页 >  网技达人 >  设计模式-index

设计模式-index

导读:设计模式是个老生常谈的话题, 不同的人对此有不同的看法.新手可能会觉得设计模式难以理解, 并且也只与编程语言有关, 或者只与前端后端有关, 适用范围很窄.或者就干脆觉得这玩意儿没啥卵用, 写了那么一大坨只是让代码变得复杂难懂, 不如直接复制黏贴删删改改来得方便.老手可能会觉得设计

设计模式是个老生常谈的话题, 不同的人对此有不同的看法

  • 新手可能会觉得设计模式难以理解, 并且也只与编程语言有关, 或者只与前端后端有关, 适用范围很窄
    或者就干脆觉得这玩意儿没啥卵用, 写了那么一大坨只是让代码变得复杂难懂, 不如直接复制黏贴删删改改来得方便

  • 老手可能会觉得设计模式就是yyds, 写代码时不搞个什么模式就显得太low了
    不管写什么东西都要分离出接口和实现, 搞一个战未来的模式, 不如此无法体现出设计模式的”灵活性”

  • 也有人根本没听说过什么设计模式, 但看了些例子之后表示, “就这?”

  • ……

什么是设计模式

设计模式(Design pattern)并不是什么创新性的发明, 只是对一些解决方案的归纳
就像在 “氧气” 这个词出现之前, 人类也是一样可以呼吸的
针对不同场景下的问题, 开发人员使用了不同的解决方案, 经过整理归纳之后形成了针对特定场景的通用方案, 这些方案被称为”设计模式”

设计模式六大原则

  • 总则: 开放封闭原则(Open Closed Principle,OCP): 对扩展开放, 对修改关闭。即在不修改原有代码的基础上进行扩展
  • 单一职责原则(Single Responsibility Principle,SRP): 一个类或者一个方法只有一个职责
  • 里氏替换原则(Liskov Substitution Principle,LSP): 子类可以替换父类, 并保持父类的功能和特性
  • 依赖倒置原则(Dependency Inversion Principle,DIP): 高层模块不应该依赖于低层模块, 二者都应该依赖于抽象, 而不是具体的实现细节
  • 接口隔离原则(Interface Segregation Principle,ISP): 尽量使用多个专门的接口, 而不是单一的总接口
  • 最少知道原则(Law of Demeter,LoD): 一个对象应该对其他对象有尽可能少的了解, 不应该直接与其他对象之间发生联系
  • 合成复用原则(Composite/Aggregate Reuse Principle,CARP): 尽量使用合成, 而不是通过继承达到复用的目的

众所周知四大天王有五个, 所以六大原则有七个也是很正常的事情

三大类设计模式

  • 创建型模式: 关注对象的创建过程, 包括对象的实例化和组装方式, 使得代码更加灵活可扩展
  • 结构型模式: 关注对象之间的组成和协作方式, 帮助我们将对象组合成更大的结构, 以实现更复杂的功能
  • 行为型模式: 关注对象之间的交互方式和职责划分, 使得系统中对象之间的通信更加灵活高效

二十三种设计模式

  • 创建型模式
    • 工厂方法模式(Factory Method Pattern)
    • 抽象工厂模式(Abstract Factory Pattern)
    • 单例模式(Singleton Pattern)
    • 建造者模式(Builder Pattern)
    • 原型模式(Prototype Pattern)
  • 结构型模式
    • 适配器模式(Adapter Pattern)
    • 桥接模式(Bridge Pattern)
    • 组合模式(Composite Pattern)
    • 装饰模式(Decorator Pattern)
    • 外观模式(Facade Pattern)
    • 享元模式(Flyweight Pattern)
    • 代理模式(Proxy Pattern)
  • 行为型模式
    • 责任链模式(Chain of Responsibility Pattern)
    • 命令模式(Command Pattern)
    • 解释器模式(Interpreter Pattern)
    • 迭代器模式(Iterator Pattern)
    • 中介者模式(Mediator Pattern)
    • 备忘录模式(Memento Pattern)
    • 观察者模式(Observer Pattern)
    • 状态模式(State Pattern)
    • 策略模式(Strategy Pattern)
    • 模板方法模式(Template Method Pattern)
    • 访问者模式(Visitor Pattern)
内容
  • 读程序员的制胜技笔记13_安全审查(上)
    读程序员的制胜技笔记13_安全审
    2023-12-06
    1. 安全.1.1. 关乎人类心理学.1.1.1. 接受开发者有着人类的弱点,主要的弱点就是对概率的错误估计.1.2.
  • 牛仔裤
    牛仔裤
    2024-01-05
    牛仔裤.牛仔裤,是一种起源于美国的经典服装单品,以其耐穿耐磨的特性,成为了时尚界不可或缺的一部分。无论是男女老少,都能在
  • 儿童T恤
    儿童T恤
    2023-12-26
    儿童T恤.儿童T恤是一种专门为儿童设计的上衣,具有舒适、时尚、环保等特点,是孩子们*常穿着的必备单品。.产品功能.儿童T
  • 婴儿连体衣
    婴儿连体衣
    2023-12-21
    婴儿连体衣.产品描述.婴儿连体衣是专门为婴儿设计的一款便捷舒适的睡衣,它将上衣和裤子融为一体,令宝宝在睡觉及活动时更加方
  • 外套
    外套
    2023-12-06
    外套.外套是一种经典的服装单品,不仅给人温暖的保护,还可以提升整体的时尚感。我们的外套采用高品质的材料和工艺**而成,既
  • 皮鞋
    皮鞋
    2024-01-15
    皮鞋.产品介绍.我们的皮鞋是经过精心设计和**的高品质鞋类产品。采用优质皮革和精湛工艺,为您提供舒适的穿着体验和时尚的外
  • 女童连衣裙
    女童连衣裙
    2024-01-15
    女童连衣裙.产品功能.高品质面料:选用优质的面料,柔软舒适,给孩子最佳的穿着体验.精美设计:精致的工艺和设计,展现孩子的
  • 儿童外套
    儿童外套
    2023-12-06
    儿童外套.产品功能.我们的儿童外套具有多种功能,包括保暖、防风、防水和舒适。它们采用高质量的面料制成,能够有效地抵御寒冷
  • 休闲鞋
    休闲鞋
    2024-01-05
    休闲鞋 - 轻松舒适的时尚选择.产品功能.休闲鞋 是一款适合各种活动的多功能鞋,其设计灵感来源于慢生活和自由精神。采用轻
  • 裤子
    裤子
    2023-12-26
    时尚新品发布:舒适时尚的裤子.产品功能.高品质的面料:采用柔软舒适的面料,透气性好,穿着舒适,不易起皱,易于护理。.人性
  • 儿童运动服
    儿童运动服
    2023-12-16
    儿童运动服.产品功能.我们的儿童运动服采用高品质的面料和工艺制作而成,具有出色的透气性和舒适性,可以让孩子在运动中保持干