設計模式:lession3

一、工廠模式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)
相關文章
相關標籤/搜索