1、工厂模式
概述:
- 工厂模式对new对象进行单独封装
- 遇到new时,就应该考虑工厂模式
// 创造原型
class Protuct{
constructor(name){
this.name = name;
}
init(){
console.log('init')
}
showA(){
console.log('showA')
}
showB(){
console.log('showB')
}
}
//建立工厂
class Creator{
create(name){
return new Protuct(name)
}
}
//运用程序
let creator = new Creator();
let p = creator.create('p1');
p.init();
p.showA();
p.showB();
2、单例模式:一个类只能有一个实例
- 登录框
- 购物车
//java语言中的演示
public class SingleObject{
//私有化变量,外部不能new,只能内部new!!!
private SingleObject(){
}
// 唯一被new出来的对象
private SingleObject instance = null;
// 获取对象的唯一接口
public SingleObject getInstance(){
if(instance == null){
instance = new SingleObject();
}
return instance
}
public void login(username,password){
System.out.println('login...')
}
}
- javascript演示
class SingleObject{
login(){
console.log('login...')
}
}
SingleObject.getInstance = (function(){
let instance
return function(){
if(!instance){
instance = new SingleObject()
}
return instance
}
})()
let obj1 = SingleObject.getInstance();
obj1.login();
let obj2 = SingleObject.getInstance();
obj2.login();
console.log('obj1===obj2',obj1===obj2)