javascript设计模式总结

参考

通过设计模式可以增加代码的可重用性、可扩展性、可维护性

设计模式五大设计原则

单一职责:一个程序只需要做好一件事,如果结构过于复杂就拆分开,保证每个部分独立

开放封闭原则:对扩展开放,对修改封闭。增加需求时扩展新代码而不是修改源代码。

里氏置换原则:子类覆盖父类,父类能出现的地方子类也能出现。

接口独立原则:保持接口单一独立,避免出现胖接口。

依赖导致原则:面向接口编程,依赖于抽象而不依赖于具体。使用方只用专注于接口而不用专注于具体类的实现。

设计模式三大类

创建 结构 行为

创建类:工厂模式、抽象工厂模式、建造者模式、单例模式、原型模式

结构类:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式

行为类:策略模式、模版方法模式、发布订阅模式、迭代器模式、职责链模式、命令模式、备忘录模式、状态模式、访问者模式、中介模式、解释器模式

工厂模式

优点:

调用者创建对象时只需要知道类的名称

扩展性高

隐藏产品的具体实现,只用关心接口

缺点:

每次增加一个产品时都需要增加一个具体的类,这增加了系统的内存压力,也增加了具体类的依赖

例如一个服装厂可以卖不同的衣服

cpp 复制代码
class DownJacket {
  production() {
    console.log('生产羽绒服')
  }
}
class TShirt {
  production() {
    console.log('生产t恤')
  }
}

class ClothingFactory {
  constructor() {
    this.downJacket = DownJacket
    this.tShirt = TShirt
  }
  getFactory(clothingType) {
    const _production = new this[clothingType]
    return _production.production()
  }
}

const downJacket = new ClothingFactory()
downJacket.getFactory('downJacket')
结果:生产羽绒服

后续更新。。。。

相关推荐
程序员老陆9 分钟前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光15 分钟前
C语言入门,深入理解指针(3)
c语言·开发语言
码云数智-园园41 分钟前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
禾小西1 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨1 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
徐小黑ACG2 小时前
Golang 基础05 结构体struct
开发语言·算法·golang
优橙教育2 小时前
零基础学AI应用开发要多久?3个月能到什么水平
服务器·开发语言·网络·php
SEO_juper3 小时前
用 Python 写一个 GEO 可见性检查脚本:你的网站现在能被 AI 引用吗
开发语言·人工智能·爬虫·python·seo·外贸独立站
西柚小萌新3 小时前
【LLM&&AI应用开发 八股文】--4.3.Agent智能体(下)
java·开发语言·数据库
北极有牛3 小时前
cpp学习笔记--常量指针
java·开发语言·算法