丁鹿学堂:前端设计模式探究之建造者模式

65 阅读1分钟

前端设计模式之建造者模式

需求:我们写一个编辑器,这个编辑器初始化的时候,需要配置大量的参数,而且内部功能很多。
分析:
对象少,一个页面基本只要一个。参数和内部功能复杂,需要精细化构建。所以适合使用建造者模式。
实现:
建造者模式,就是把复杂的功能拆分成独立的类,最后再组合起来。
1 不同的功能创建不同的类:初始化html的类,字体设置的类,修改状态的类
2 不同的类有不同的方法,比如html的样式设置,字体的颜色大小,状态的保存,都分别在不同的类上实现

function Editor(){

}
function initHTML(){

}
initHTML.prototype.initStyle = function(){

}
initHTML.prototype.render = function(){

}
function fontSet(){

}
fontSet.prototype.setColor = function(){}
fontSet.prototype.setFontSize = function(){

}
function stateSet(){

}
stateSet.prototype.saveState = function(){}
stateSet.prototype.stateBack = function(){}
stateSet.prototype.stateNext = function(){}
window.Editor = Editor

3 最后,把这些类统一写在Editor上

 function Editor(){
  this.initHTML = new initHTML()
  this.fontSet = new fontSet()
  this.stateSet = new stateSet()
}

总结:

使用建造者模式统一在Editor中new 调用以后,这样这些模块之间,都可以互相调用了。

我们各种模块之间的沟通会变得很明确很清晰。一个比较复杂的功能经过拆分成独立的小模块再重新组合起来。

既有利于我们编写代码,也方便去组织不同模块之间的沟通。这也是建造者模式的一个目的。

我们通过按照不同的功能拆分成不同的模块,然后再组合再一起,保持模块之间的低耦合,方便我们进行高效的编程。