JavaScript 设计模式之外观模式
JavaScript设计模式之外观模式
介绍
为子系统的一组接口提供一个高层接口
使用者使用这个高层接口
举例
当你去医院时, 会有一个接待员,接待员回去给你挂号、门诊、划价、取药等等。
UML类图
使用场景
function bindEvent (elem, type, selector, fn) {
if (fn === null) {
fn = selector
selector = null
}
// ...
}
bindEvent(elem, 'click', '#div', fn)
bindEvent(elem, 'click', fn)
JavaScript 设计模式之代理模式
JavaScript设计模式之代理模式
介绍
使用者无权访问目标对象
中间加代理, 通过代理做授权和控制
举例
代理模式, 用户无权直接访问, 需要找一个代理人间接进行访问, 例如公司内网,当你在家提交代码的时候,你必须使用VPN做为代理,访问公司内网, 完成相关工作
还有就是下面代码示例, 明星经纪人, 外界访问明星,必须经过经纪人,例如你要邀请明星做演出,你不会直接和明星谈论价格,需要通过经纪人来完成此项操作。
UML类图
代码
class ReadImg {
constructor(filename) {
this.filename = filename;
this.loadFromDisk();
}
displ...
JavaScript 设计模式之装饰者模式
JavaScript设计模式之装饰者模式
介绍
为对象添加新功能
不改变其原有的结构和功能
举例
正如这个模式的名字一样,装饰一个原有的对象,装饰的意思就是不改变原有对象的东西,只是新增。
现实生活中的例子有很多,比如手机壳, 手机的所有功能正常使用, 新增手机壳的一些属性, 还有灯罩, 灯的功能完全不影响,新增灯罩的功能。
UML类图
代码
class Cirlce {
draw () {
console.log('画圈')
}
}
class Decorator {
constructor (circle) {
this.circle = circle
}
draw () {
this.circle.draw()
...
JavaScript 设计模式之适配器模式
JavaScript设计模式之适配器模式
介绍
旧接口与使用者不兼容
中间加一个适配转换接口
举例
使用mac的人都知道,mac的usb接口和目前市场上流行的接口不太一样,需要使用一个转换器来连接, 这个转换器就相当于程序中的适配器。
UML类图
代码
class Adaptee {
specificRequest() {
return 'mac版usb接口'
}
}
class Target {
constructor () {
this.adaptee = new Adaptee()
}
request () {
let info = this.adaptee.specificRequest()
retu...
JavaScript 设计模式之工厂模式
JavaScript设计模式之工厂模式
介绍
工厂模式主要用于实例化对象,它抽象了创建具体对象的过程。当你遇到new关键字的时候就可以考虑考虑是否可以使用工厂模式。
举例
当你去KFC买汉堡时,你只需要点餐付钱,之后等着服务员叫号就行。这个过程就可以看做是应用工厂模式的情况,你不用自己去做汉堡吧,做汉堡(new Hamburger())的方法被封装在了KFC商店里。你只需要点餐付钱(可以看做汉堡店给你提供的方法),就可以吃到美味的汉堡包。
UML类图
代码
class Product {
constructor(name) {
this.name = name
this.createTime = Date.now()
}
fun1 () {
c...
JavaScript 常用设计模式(一)
javaScript 常用的设计模式(一)
1. 设计模式的历史
设计模式起源于建筑行业,一位名叫Alexander的建筑师发现并总结了一些建筑行业的设计模式。在20世纪90年代,准确地说是1995年,由于Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides合著的《设计模式–可复用面向对象软件的基础》一书的出版,正式掀开了软件业设计模式的序幕,这本书的四位作者被世人称为四人组,也有人将其称为”四人帮”,也就是大家常见的GoF(Gang of Four)。
2. 什么是模式
设计模式是一套被 反复使用、多数人知晓、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解并...
共计 45 篇文章,6 页。