Node.js
运行于服务器的js
可以使用node.js搭建服务端,javascipt作为服务端的代码。这一个部分的javascript代码可以获得客户端发来的请求。也可以设置给客户端的返回值
Websphere application server(多个服务端部署在websphere application server上,他是一个软件)
大型机(Websphere application server 安装在大型机上)
服务端的开发语言,比如java php等等
特点:性能好 造价高 开发服务端复杂
传统服务器的替代
Node.js 替代 Websphere application server
小型机或者微型机(node.js部署在小型机或者微型机上)
开发语言:javascript(前台人员也可以开发服务端)
特点:性能不如传统服务器,造价低,服务端开发相对容易
http://www.runoob.com/nodejs/nodejs-tutorial.html
设计模式
是经过前人大量的实践,总结出来的行之有效的程序开发方法/思想
工厂模式
Function 方法名(参数1,参数2…..){
Return{
参数1:参数1,
参数2:参数2,
参数3:参数3,
………………
}
}
Var 对象=方法名(参数1,参数2……)
优势:利用工厂模式减少代码量以及工作量
工厂模式的进一步变化
Var obj={}
Obj.fn1=function(){
Console.log(‘fn1’)
}
Obj.fn2=funciton(){
console.log(‘fn2’)
}
Obj.factory=function(fnname,str){
Objfnname
}
Obj.factory(‘fn1’,’hello’)
优势:通过factory(),也就是工厂方法,对多个方法进行管理。可以用参数的形式,动态指定执行哪一个方法。提供更大的灵活性。
策略模式
Var plan={
Sum:function(a,b){
Return a+b
},
Max:function(a,b){
Return a<b?b:a;
}
Min:funciton(a,b){
Return a>b?b:a;
}
}
Var fangfa=funciton(fnname,a,b){
Return planfnname
}
Alert(fangfa(’sum’,10,20))
优势:有工厂模式的变化受到启发,产生策略模式。有策略方法对多个方法进行管理
可以用参数的形式,动态的指定那个方法,提供灵活性
单例模式:为保证某个类只初始化一次
Var instance=0;
Var obj;
Function Girl(name){
This.name=name;
If(instance==0){
Instance=1;
Obj=this //减少创建实例的数量 总是只使用第一次创建的实例
Return this
}
Return obj
}
Var girl=new girl(‘zhuangmeng’)
Var girl2=new girl(‘sfasdf’)
Var girl3=new girl()
优势:始终只有一个实例被创建,可以实现资源的共享和资源同步。无论多少人,无论谁使用,都使用的是同一个实例。
应用场景:日志文件
代理模式
比如:我们开发的程序提供一个接口(一个方法,不如叫:aaa()),可以向数据库添加一条学生信息(由于要对接口保密,不行让多有人都知道我们这个方法)
我们可以指定某一个对象调用这个接口(方法),调用的方法叫bb。
Bb(){
Aaa();
}
其他人只能看到bb方法 无法看到aaa()这个接口的目的,所以,外人想添加学生信息的话,只能调用bb()方法
代理模式就是对aaa()做了一层包装
Var man={
SendFlower:function(){
Laowang.sendFlower()
}
};
Var laowang={
sendFlower(){
alert(‘songhua’)
}}
代理模式的例子:
论坛发帖功能 游客不允许发帖 注册用户可以发帖
发帖的时候需要对用户的信息进行验证
提示:
User(name,age,userCode)//001是注册用户,002是游客
User.faTie()
Forum(user)//forum有用户属性
Form.faTie()//对用户身份进行验证
第一个用户 注册用户(’john’,20,’001’)
第二个用户 游客 (’游客’,0,’002’)
上面两个用户发帖
例子
创建一个人的实例,名字叫john,20岁
创建一只猫的实例,名字叫Tom,3岁
创建一只狗的实例,名字叫hashiqi,2岁
创建一只老虎的实例,名字叫做tiger,5岁