学习笔记0929


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://nodejs.cn/

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岁