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 后记:
不要说我代码写的污,咱用的是面向对象的思想。
java 从入门到单身狗_java 的23种设计模式 之单身狗和隔壁老王的故事相关推荐
- java 的23种设计模式 之单身狗和隔壁老王的故事
2019独角兽企业重金招聘Python工程师标准>>> 觉得代码写的别扭了,回头翻翻java 的23种设计模式. today,额,这么晚了,困了.就弄个最简单的单例模式吧. 单例模式 ...
- 【JAVA长虹键法】第二式 单例模式(23种设计模式)
- java外围设计_Java 编程(23 种设计模式)
简介 在一般的程序开发过程中,初中级程序员接触的程序设计模式是比较少的.最常见的可能就是单例模式.工厂模式.抽象工厂模式等等,但实际上程序中的设计模式是非常多的,具体可以分为 23 种设计模式.设计模 ...
- 在昨天夜黑风高的晚上,我偷了隔壁老王的Python入门课件,由浅入深堪称完美!
隔壁老王是一个资深码农,就业教育事业的秃顶之才 昨天我下楼打酱油,看他迎面走来,满目春光 我好奇的问道:老王,有什么好事,隔壁小花叫你上门了吗? 老王:秘密!! 我心想:哎呦~不错啊 半晚之时,连猫狗 ...
- Java开发中的23种设计模式详解(转)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- 【设计模式】Java 23种设计模式对比总结
一.设计模式的分类 创建型模式,共五种(1-5):工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型模式,共七种(6-12):适配器模式.装饰器模式.代理模式.外观模式.桥接模式.组 ...
- 【java】java开发中的23种设计模式详解
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
- java 23种设计模式及具体例子 收藏有时间慢慢看
设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了可重用代码.让代码更容易被他人理解.保证代 码可靠性. 毫无疑问,设计模式 ...
- java 23种设计模式(转载)
设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...
最新文章
- ios 应用和电脑共享文件夹_堪比AirDrop,苹果 iPhone与Windows电脑互传文件的三种方式...
- IIS6.0 web.config
- Windows窗口分析
- 单例设计模式-饿汉式
- Python编写简易木马程序
- Java中的钩子方法
- iis php多版本共存,IIS7中多个版本php共存的方法
- 30岁从零学计算机,30岁从零学阅读方法来得及吗?
- Tcpdump的用法及使用案例
- C语言程序设计(谭浩强第五版)——例题
- 【集成电路 - -芯片】
- win10安装ipython_在win10下安装 ipython 5
- 英语学术论文写作常用词汇
- Linux基本命令-权限、运维相关
- HTML+CSS静态页面网页设计作业——我的家乡-四川成都(4页) HTML+CSS+JavaScript
- 哪些蓝牙耳机适合打游戏?适合打游戏的低延迟蓝牙耳机排行
- freemarker实现word模板
- 用python画带有正负值的条形图
- html5 游戏 动画设计,11款效果惊艳的HTML5动画应用
- 下载上市公司财报并可视化某科目