面向对象 Object Oriented Programming
单利设计模式(Singleton pattern)
表现形式:
var obj ={
xxx:xxx,
...
};
在单例设计模式中,OBJ不仅仅是对象名,它被称为"命名空间[NameSpace]",把描述事物的属性存放到命名空间中,多个命名空间是分开的,互不冲突。
2.作用
把描述同一件事物的属性和特征"分组""归类" (存储在同一个堆内存中),因此避免了全局变量之间的冲突
var pattern1={name:'xxx'}
var pattern2={name:'xxx'}
3.单利设计模式的命名
==>每一个命名空间都是JS中Object这个内置类的实例,而实例之间是相互独立互不干扰的,是单独的实例。
在给命名空间赋值的时候,不是直接赋值一个对象,而是先执行匿名函数,形成一个私有作用域AA(不销毁的栈内存), 在AA中创建一个堆内存,把堆内存地址赋值给命名空间。
var nameSpace=(function(){
var n1 =12;
function fn (){
}
function sum (){
}
return {
fn:fn
sum:sum
}
})();
这种模式优点:我们完全可以在AA中添加很多内容(变量||函数),哪些需要供外面调取使用,我们暴露到返回对象中。(模块化实现的一种思想)
工厂模式 Factory Pattern
把实现相同功能的代码进行‘封装’ 以此来实现‘批量生产’(后期想要实现这个功能,我们只需要执行函数即可)
低耦合高内聚:减少页面中冗余代码,提高代码的重复使用率
function createPerson(name,age){
var obj = {}; obj.name = name;
obj.age = age;
return obj;
}
var p1 = createPerson('xxx',25);
var p2 = createPerson('xxx',25);