一、工廠模式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)