Q女士是在太喜欢干净了,每天都打扫3遍卫生,家里弄得是一尘不染。
这天,Y先生在家休息,和Q女士一起打扫卫生。
干了一会,Y先生突然发现了一个问题,就是家里的抹布突然多了起来。Y先生观察了一会,终于发现哪出问题了。
原来Y先生和Q女士一起干活,当Q女士用抹布的时候,Y先生想用的时候,就拿出来一个新的。最糟糕的是,有的时候
两个人都忘了把抹布放到了什么地方,只好再拿新的。
Y先生:老婆等等,你不觉得咱们家现在抹布太多了吗?
Q女士:嗯,是多了一点,怎么搞得?
Y先生:我来想个办法吧:
java 代码
- public class Mabu {
- private static Mabu instance = new Mabu();
- public static Mabu getMabu() {
- return instance;
- }
- }
Q女士:看起来不错,可是,我仍然可以拿一个新的抹布,不是吗? Mabu mabu = new Mabu();
Y先生:嗯,我得修改一下:
java 代码
- public class Mabu {
- private static Mabu instance = new Mabu();
- private Mabu() {
- }
- public static Mabu getMabu() {
- return instance;
- }
- }
Q女士:嗯,确实,这样就不会弄得乱了,可是,如果我们不打扫卫生的时候,卫生间里为什么还要放一个抹布?
Y先生:对,我再修改一下:
java 代码
- public class Mabu {
- private static Mabu instance = null;
- private Mabu() {
- }
- public static Mabu getMabu() {
- if(instance==null) {
- instance = new Mabu();
- }
- return instance;
- }
- }
Q女士:这个方案确实不错,可是如果我们两个同时需要抹布,你能保证只存在一个抹布?我指得是“同时”。
Y先生:我明白你的意思了,那还得修改一下:
java 代码
- public class Mabu {
- private static Mabu instance = null;
- private Mabu() {
- }
- public static synchronized Mabu getMabu() {
- if(instance==null) {
- instance = new Mabu();
- }
- return instance;
- }
- }
Y先生得意地一笑:这下在咱们家就只能存在一个抹布了!!!
Q女士:只能使用一个抹布???难道你想让我们半夜才打扫完卫生吗??快给我去掉这个没有用的东西!!
于是。。。。抹布再次遍布于家中。。。。