1. 程式人生 > >【設計模式學習筆記】多例模式

【設計模式學習筆記】多例模式

多例模式,即多個單例,並不是簡單的new new new,算是個極端,不能完全否定吧。

文章目錄

1.1 多例模型

package multiton;

import java.util.HashMap;
import java.util.Map;

/************************************************
 *@ClassName : multiton
 *@Description : TODO
 *@Author : NikolaZhang
 *@Date : 【2018/11/30 21:07】
 *@Version : 1.0.0
 *************************************************/
public class BranchCompany { private static Map<String, BranchCompany> map = new HashMap<>(); private String info; static { // 預先設定兩個分公司 BranchCompany bjCom = new BranchCompany(); bjCom.setInfo("這是北京的公司"); System.out.println("北京的分公司:"+bjCom); map.
put("beijing", bjCom); BranchCompany shCom = new BranchCompany(); shCom.setInfo("這是上海的公司"); map.put("shanghai", shCom); System.out.println("上海的分公司:"+shCom); System.out.println("=============================="); } public static BranchCompany getInstance
(String address){ return map.get(address); } public void getInfo(){ System.out.println(this.info+"/"+this); } public void setInfo(String info){ this.info = info; } }

1.2 測試

package multiton;

/************************************************
 *@ClassName : Test
 *@Description : TODO
 *@Author : NikolaZhang
 *@Date : 【2018/11/30 21:17】
 *@Version : 1.0.0
 *************************************************/

public class Test {
    public static void main(String[] args) {
        BranchCompany bj = BranchCompany.getInstance("beijing");
        bj.getInfo();
        BranchCompany sh = BranchCompany.getInstance("shanghai");
        sh.getInfo();
    }
}

1.3 結果

在這裡插入圖片描述