【設計模式學習筆記】多例模式
阿新 • • 發佈:2018-12-31
多例模式,即多個單例,並不是簡單的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();
}
}