前端设计模式之建造者模式
需求:我们写一个编辑器,这个编辑器初始化的时候,需要配置大量的参数,而且内部功能很多。
分析:
对象少,一个页面基本只要一个。参数和内部功能复杂,需要精细化构建。所以适合使用建造者模式。
实现:
建造者模式,就是把复杂的功能拆分成独立的类,最后再组合起来。
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 调用以后,这样这些模块之间,都可以互相调用了。
我们各种模块之间的沟通会变得很明确很清晰。一个比较复杂的功能经过拆分成独立的小模块再重新组合起来。
既有利于我们编写代码,也方便去组织不同模块之间的沟通。这也是建造者模式的一个目的。
我们通过按照不同的功能拆分成不同的模块,然后再组合再一起,保持模块之间的低耦合,方便我们进行高效的编程。