觉得代码写的别扭了,回头翻翻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 后记:

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

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

  1. java 从入门到单身狗_java 的23种设计模式 之单身狗和隔壁老王的故事

    觉得代码写的别扭了,回头翻翻java 的23种设计模式. today,额,这么晚了,困了.就弄个最简单的单例模式吧. 单例模式:俗称单身狗 package singleton; public clas ...

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

    2019独角兽企业重金招聘Python工程师标准>>> 觉得代码写的别扭了,回头翻翻java 的23种设计模式. today,额,这么晚了,困了.就弄个最简单的单例模式吧. 单例模式 ...

  3. JAVA六大设计原则 和 23种设计模式

    相关书籍:<大话设计模式>.<Java设计模式>.<设计模式之禅>.<研磨设计模式>.<Head First 设计模式> JAVA六大设计原 ...

  4. java七大设计原则,23种设计模式

    点击查看七大设计原则,23种设计模式 其中 简单工厂.工厂方法.抽象工厂 三种工厂模式中的工厂类的作用基本都是:根据传入的参数创建对应的对象,如果创建的种类太多,那么 简单工厂要写很多 if - el ...

  5. 坦克大战java_清华毕业大佬用一个坦克大战项目讲完了23种设计模式

    先给大家讲述一下坦克大战是怎么进行运行的. 坦克大战第一节: new 出一个窗口: 设定标题栏内容: TankFrame从Frame继承+显示: 认识paint方法,重写: 坦克大战第二节 学习gra ...

  6. Java开发中的23种设计模式详解(转)

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  7. 【设计模式】Java 23种设计模式对比总结

    一.设计模式的分类 创建型模式,共五种(1-5):工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种(6-12):适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组 ...

  8. 【java】java开发中的23种设计模式详解

    设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  9. java 23种设计模式及具体例子 收藏有时间慢慢看

    设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代 码可靠性. 毫无疑问,设计模式 ...

  10. java外围设计_Java 编程(23 种设计模式)

    简介 在一般的程序开发过程中,初中级程序员接触的程序设计模式是比较少的.最常见的可能就是单例模式.工厂模式.抽象工厂模式等等,但实际上程序中的设计模式是非常多的,具体可以分为 23 种设计模式.设计模 ...

最新文章

  1. 2.6 datetime 模块
  2. 什么是消息队列 RocketMQ 版?
  3. SqlServer中的动态Sql
  4. 北大AI第八讲 李航 自然语言处理的现实与挑战
  5. JAVA毕业设计婚纱摄影网设计计算机源码+lw文档+系统+调试部署+数据库
  6. Apollo(阿波罗)(一)环境搭建
  7. 手机免费使用PDF编辑器一键支持PDF转Word,随时随地处理文档
  8. linux 缩小硬盘镜像,缩小qcow2格式kvm虚拟镜像磁盘大小[转]
  9. 网上下单的手机流量卡,京东快递配送开卡!有猫腻!要注意!
  10. 集合,ArrayList的运用、 Add()、AddRange()、Clear()、 IndexOf()等
  11. java vip 设计,图灵Java架构师vip
  12. 全球最牛的4个区块链项目都在这里!
  13. html课堂笔记2.24
  14. 如何找回微信删除或隐藏掉的群聊(很久之前参与过的群)
  15. 分布式数据访问层(DAL)
  16. 【教你两招!】弄懂3DMAX如何渲染通道图像
  17. 自制C#版3DS文件的解析器并用SharpGL显示3DS模型
  18. 【LaTex】表格合并单元格
  19. Java异步并发和线程池
  20. 4G网络数据传输流程 一

热门文章

  1. Transmission搭建BT下载服务器
  2. 在MATLAB中实现均值变点法
  3. coldfusion_ColdFusion中的数据结构简介
  4. python量化交易第三章
  5. Django新手十个开发指导
  6. serialization 序列化
  7. PCL Visualizer可视化类
  8. Ubuntu18.04创建WiFi热点
  9. 简单介绍一下ODI的几个基本概念
  10. springcloud之服务发现笔记