qrcode

马上订阅,开启修仙之旅

design pattern

TypeScript 设计模式之享元模式

一、简介享元模式就是运行共享技术有效地支持大量细粒度的对象,避免大量拥有相同内容的小类的开销(如耗费内存),使大家共享一个类。在享元模式中有两个重要的概念,即内部状态和外部状态: 内部状态:在享元对象内部不随外界环境改变而改变的共享部分。 外部状态:随着环境的改变而改变,不能够共享的状态就是外部状态。 由于享元模式区分了内部状态和外部状态,所以我们可以通过设置不同的外部状态使得相同的对象...

TypeScript 设计模式之模板方法

一、简介模板方法模式是一种只需使用继承就可以实现的非常简单的模式。模板方法模式由两部分结构组成,第一部分是抽象父类,第二部分是具体的实现子类。通常在抽象父类中封装了子类的算法框架,也包括实现一些公共方法以及封装子类中所有方法的执行顺序。子类通过继承这个抽象类,也继承了整个算法结构,并且可以选择重写父类的方法。 二、优缺点优点 在父类中形式化地定义一个算法,而由它的子类来实现细节的处理,在子类...

TypeScript 设计模式之适配器模式

一、简介在实际生活中,也存在适配器的使用场景,比如:港式插头转换器、电源适配器和 USB 转接口。而在软件工程中,适配器模式的作用是解决两个软件实体间的接口不兼容的问题。使用适配器模式之后,原本由于接口不兼容而不能工作的两个软件实体就可以一起工作。 (图片来源 - https://meneguite.com/) 二、优缺点优点 将目标类和适配者类解耦,通过引入一个适配器类来重用现有的适配者...

TypeScript 设计模式之观察者模式

一、简介观察者模式,它定义了一种一对多的关系,让多个观察者对象同时监听某一个主题对象,这个主题对象的状态发生变化时就会通知所有的观察者对象,使得它们能够自动更新自己。 我们可以使用日常生活中,期刊订阅的例子来形象地解释一下上面的概念。期刊订阅包含两个主要的角色:期刊出版方和订阅者,他们之间的关系如下: 期刊出版方 —— 负责期刊的出版和发行工作。 订阅者 —— 只需执行订阅操作,新版的期刊...

TypeScript 设计模式之单例模式

一、简介单例模式是一种常用的模式,有一些对象我们往往只需要一个,比如线程池、全局缓存、浏览器中的 window 对象等。单例模式用于保证一个类仅有一个实例,并提供一个访问它的全局访问点。 二、优缺点优点 由于单例模式在内存中只有一个实例,减少了内存开支,特别是一个对象需要频繁地创建、销毁时,而且创建或销毁时性能又无法优化,单例模式的优势就非常明显。 由于单例模式只生成一个实例,所以减少了系统...