Aspect Oriented Programming(AOP)面向切面编程,是一个比较热门的话题。AOP主要实现的目的是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。
//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);