Java单身狗,java 的23种设计模式 之单身狗和隔壁老王的故事

觉得代码写的别扭了,回头翻翻java 的23种设计模式。

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 。

中文解释就单调用,通俗的说就是只有某人才能使用某物。

给个场景,HumanWang, WangWife

老王,和老王老婆。

老王老婆有一项技术叫mkl,但是这项技术只能老王才能用,

先看老王:

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() {

}

//当然谁都能企图获取王妃的身体,不过王妃只给老王一个人,如果有人用修改字节码方式强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;

}

//王妃的技术。

public void mkl() {

System.out.println("啪啪啪");

}

}

这样就只有老王才能获取王妃,然后王妃施展技术。

ps 后记:

不要说我代码写的污,咱用的是面向对象的思想。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值