一、工厂模式javascript
概述:java
- 工厂模式对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();
二、单例模式:一个类只能有一个实例this
- 登陆框
- 购物车
//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)