2015年9月18日
JavaScript面向切面编程
Aspect Oriented Programming(AOP)面向切面编程,是一个比较热门的话题。AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
构造函数模式的作用与注意事项
模式作用:
用于创建特定类型的对象
第一次生命的时候给对象赋值
对自己声明构造函数,赋予属性与方法。
注意事项
生命函数的时候处理业务逻辑。
区分与单例的区别,配合单例实现初始化。
构造函数大写字母开头。
注意new的成本
//1. 用于创建特定类型的对象。
//2. 注意函数名的语义性与可读性。
//3. javascript开发的时候用单引号,双引号在内部也会转成单引号。
//4. js里面的构造函数比较特殊的地方是有一个 new。
//5. 其他语言,比如PHP里人家实现有一个关键字 A class
//6. zaomen就是构造函数,他又充当了类的概念。
function zaomen(){
if(!(this instanceof zaomen)){
return zaomen();
}
this.suo="普通";
this.huawen="普通";
this.create=function(){
return "【锁头】"+this.suo+"【花纹】"+this.huawen
}
}
var xiaozhang =new zaomen();
alert("xiaozhang"+xiaozhang.create());
设计模式之建造者模式
模式作用:
分步创建一个复杂的对象
解耦封装过程和具体创建的组件。
无需关心组件如何组装
注意事项:
一定要一个稳定的算法进行支持。
加工工艺是暴露的。
function Fangzi(){
this.woshi="";
this.keting="";
this.chufang="";
}
function Baogongtou(){
this.gaifangzi=function(gongren){
gongren.jian_woshi();
gongren.jian_keting();
gongren.jian_chufang();
};
}
function Gongren(){
this.jian_woshi=function(){
alert("卧室我盖好了");
};
this.jian_keting=function(){
alert("客厅我盖好了");
};
this.jian_chufang=function(){
alert("厨房我盖好了");
};
this.jiaogong=function(){
var _fangzi=new Fangzi();
_fangzi.woshi="ok";
_fangzi.keting="ok";
_fangzi.chufang="ok";
return _fangzi;
};
}
var gongren=new Gongren();
var baogongtou=new Baogongtou();
baogongtou.gaifangzi(gongren);
var myfangzi=gongren.jiaogong();
console.log(myfangzi);
设计模式之工厂模式
模式作用 :
对象的构建十分复杂
需要依赖具体的环境创建不同的实例
处理大量具有相同属性的小对象
注意事项:
不要滥用工厂,有时候仅仅给代码增加复杂度
简单工厂模式
var gongchang={};
gongchang.chanyifu=function (argument){
this.gongren=50;
}
gongchang.chanxie=function(){
alert("产鞋子");
}
gongchang.yunshu=function(){
alert("运输");
}
gongchang.changzhang=function(para){
return new gongchang[para]();
}
var me=gongchang.changzhang('chanyifu');
alert(me.gongren);
Last updated
Was this helpful?