java 的23种设计模式 之单身狗和隔壁老王的故事
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
覺得代碼寫的別扭了,回頭翻翻java 的23種設(shè)計模式。
today,額,這么晚了,困了。就弄個最簡單的單例模式吧。
單例模式:俗稱單身狗
package singleton;
public class SingleTon {
private static final class SingleTonBuilder {
private static SingleTon singleTon = new SingleTon();
}
private SingleTon() {
}
public static SingleTon getInstance() {
return SingleTonBuilder.singleTon;
}
}
?
其實什么懶漢,餓漢,癡漢模式之類的都不用管,只要會這一種就夠了。?
跟singleton 很像的一個模式三single call 。
中文解釋就單調(diào)用,通俗的說就是只有某人才能使用某物。
給個場景,HumanWang, WangWife
老王,和老王老婆。
老王老婆有一項技術(shù)叫mkl,但是這項技術(shù)只能老王才能用,
?
先看老王:
?
package singlecall;
public class HumanWang {
????????//口號,是王妃么 ?石更么。。
private boolean shiGeng = false;
????? ??
????? ? //防止老王的兒子之類(子類重寫)冒充
public final boolean isShiGeng?() {
return shiGeng?;
}
????? ? //獲取王妃,
private WangWife getWangWife() {
WangWife vivian;
shiGeng?= true;//是王妃,石更了。
vivian = WangWife.getWangWife(this);
shiGeng?= false;//獲得王妃后其他的都不是了。車欠了。
return vivian;
}
public static void main(String[] args) {
HumanWang hw=new HumanWang();
WangWife vivian =hw.getWangWife();
vivian.mkl();
}
}?
在看老王老婆,俗稱王妃:
?package singlecall;
public class WangWife {
????????? ?//身體是自己的,不能隨便給人看
private WangWife() {
}
????? ? //當然誰都能企圖獲取王妃的身體,不過王妃只給老王一個人,如果有人用修改字節(jié)碼方式強xx,
????? ? //這個只能報警了。
public static WangWife getWangWife(HumanWang hw) {
WangWife vivian;
????????????? ? //有沒有人?
if (hw == null) {
vivian = null;
} else {
????????????????????? ? //口號正確不正確 ,有沒有石更
if (hw.isShiGeng?()) {
vivian = new WangWife();
} else {
vivian = null;
}
}
return vivian;
}
????? ? //王妃的技術(shù)。
public void mkl() {
System.out.println("啪啪啪");
}
}
這樣就只有老王才能獲取王妃,然后王妃施展技術(shù)。
ps 后記:
不要說我代碼寫的污,咱用的是面向?qū)ο蟮乃枷搿?
轉(zhuǎn)載于:https://my.oschina.net/lxy4java/blog/529681
總結(jié)
以上是生活随笔為你收集整理的java 的23种设计模式 之单身狗和隔壁老王的故事的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux使用jstat命令查看jvm的
- 下一篇: acess() 判断目录是否存在