Posts Javascript 设计模式与开发实践总结
Post
Cancel

Javascript 设计模式与开发实践总结

  上班路上看完了《Javascript 设计模式与开发实践》 看完给我个人的感觉就是设计模式的思想是很不错,可以规避很多软件开发和维护的问题.但是因为设计模式太多,全部记住不太现实,所以这里做个笔记把这些设计模式可以解决的问题记录下,当下次遇到什么问题的时候能够想起来可以用那个设计模式来解决.整本书的编程思想可以总体概况为这几个原则. (因为现在希望, 以及目前工作中主要还是使用 Typescript. 所以实例代码也只有 ts 的代码, 并且也只选择了我个人可能会用到的设计模式)

1. 单一职责原则

  单一职责原则: 一个对象(方法)只做一件事情即只有一个职责,因为如果有同时负责两个职责,在改动代码的时候容易出现修改了修改只影响A职责的代码而导致B职责的执行出现了问题.而且这样可以把对象(方法)切割成最小粒度,方便复用.较好的实现了这一原则的设计模式有

  1. 代理模式: 代理模式是为一个对象提供一个代用品或占位符,以便控制对这个对象的访问.通常用来隔离一个消耗大量系统资源的巨型对象和客户端的连接,代理对象可以伪装成一个对象,客户端在需要的时候就去找代理,这样就避免了长时间维护这个巨型对象. Typescript 示例代码

  2. 装饰者模式:装饰者模式能够在不改变对象自身的基础上,在程序运行期间给对象动态地添加职责.学过 Java 的同学应该对 AOP 这个概念很熟悉.通过装饰者模式可以让我们非常灵活的扩展我们的原有代码. Typescript 示例代码

2. 最少知识原则

  最少知识原则: 一个软件实体(系统、类、模块、函数、变量等)应当尽可能少地与其他实体发生相互作用.这样是为了避免在改动一个软件实体而引发大规模的变化.较好的实现了这一原则的设计模式有

  1. 中介者模式: 中介者模式的作用就是解除对象与对象之间的紧耦合关系.增加一个中介者对象后,所有的相关对象都通过中介者对象来通信,而不是互相引用,所以当一个对象发生改变时,只需要通知中介者对象即可. Typescript 示例代码

3. 开放-封闭原则

  开放-封闭原则: 对扩展是开放的, 而对修改是封闭的.我的理解是尽量少更改原来的代码,而是在原来的代码上做增加的操作.较好的实现了这一原则的设计模式有

  1. 发布-订阅模式(观察者模式): 发布-订阅模式用来降低多个对象之间的依赖关系,它可以取代对象之间硬编码的通知机制,一个对象不用再显式地调用另外一个对象的某个接口.当有新的订阅者出现时,发布者的代码不需要进行任何修改;同样当发布者需要改变时,也不会影响到之前的订阅者. Typescript 示例代码

  2. 策略模式: 策略模式是能让你定义一系列算法, 并将每种算法分别放入独立的类中, 以使算法的对象能够相互替换,可以有效地避免多重条件选择语句. Typescript 示例代码

4. Ref

  1. 设计模式在 Typescript 中的应用
This post is licensed under CC BY 4.0 by the author.

分布式锁/分布式事务的研究报告

基于 Redis 的分布式锁的实现方案