java中的懒汉模式(单例模式)
来源:互联网 发布:网络现金赌博官网 编辑:程序博客网 时间:2024/04/30 03:09
java中的设计模式很多,比较常用的有工厂模式,懒汉模式...今天在此分享一下懒汉模式
目的:为什么要使用懒汉模式?
大家都知道,当我们在new一个对象的时候,每个对象都会有不同的地址以及属性,这没什么错的。现在有个需求,大家都要操作同一个文件,比如A要操作 Confige.java文件,B也要操作Confige.java文件,这时候,如果我们都new Confige() ,以此来操作自己的对象,那么操作的并不是同一个对象,而是不同对象的属性,为了达到大家都操作同一个Confige.java文件,那么就需要使用一种牛逼的思想,这种思想简称“懒汉设计模式”,名字取得也算是搞笑,懒汉不懒,此举反语与本作者的wickedvalley不是恶人同理,废话不多说,开始讲解如何实现对同一个文件的操作呢?。
How:如何实现懒汉模式?
为了完成懒汉模式,我们可以这样思考。既然可以new 对象,我们就不让大家new 这样就保证了不会出现不同的对象,首先得保证不能new对象,于是要私有化构造方法:
private SingleTon() {}。 //第一步要私有化构造方法
问题来了,不然大家new, 谁来new 对象 ,对象总不会自己生出来吧,这时需要我们设计者来完成new。例如:SingleTon singleton= new SingleTon();这样new完后对象只是本类多了一个属性,需要隐藏起来,private SingleTon singleton= new SingleTon();还需要对外提供公共的方法:
public static SingleTon getInstance(){//第二步要提供公共的方法
return singleton;
}
问题又来了,静态的方法不能访问非静态的属性,需要把前面new的对象加static关键字,于是就有:
private static SingleTon singleton= new SingleTon();//第三步要自己new 一个私有的 静态的对象;
还不会看例子:
package com.hbut.basetest;
@SuppressWarnings("unused")
public class SingleTon {
private String name ;
private Integer age;
private static SingleTon singleton= new SingleTon();
private SingleTon() {
}
public static SingleTon getInstance(){
return singleton;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
@Override
public String toString() {
return "SingleTon [name=" + name + ", age=" + age + "]";
}
}
//测试单例模式
运行结果:SingleTon [name=kaxifa, age=20]
- java中的懒汉模式(单例模式)
- java中的懒汉单例模式和饿汉单例模式
- 单例模式(懒汉模式)中的线程同步问题
- 单例模式 (懒汉)
- java中的单例模式的饿汉式和懒汉式
- Java设计模式之单例模式(懒汉/饿汉)
- 单例模式中的饿汉式和懒汉式(Java设计模式)
- 懒汉单例模式
- 单例模式(懒汉模式)
- 单例模式(懒汉模式)
- 单例模式中的懒汉模式和饿汉模式
- C++中的单例模式(懒汉、饿汉)
- 单例模式--懒汉模式
- java 单例模式 -饿汉 -懒汉
- java实现单例模式--懒汉式
- Java单例模式之懒汉
- Java中的单例设计模式之饿汉模式、懒汉模式
- Java 单例模式之饿汉模式 懒汉模式
- iOS-OC-通过融云APPKey和AppSecret获取融云Token
- radosgw layout (rgw 布局)
- SQL语句insert into 不存在则插入,存在则修改
- Undefined symbol ADC_Cmd (referred from adc.o) 出错
- java读书笔记(一)
- java中的懒汉模式(单例模式)
- 这是我的第一篇博客,初来驾到请多多指教!
- Android Studio常用插件
- Spring UT-IT
- 给 Android 开发者的 RxJava 详解
- iOS重写父类中的方法时要先调用父类中的方法的原因
- Shell 统计PV, UV ,独立IP
- 一个函数使用另一个函数中的变量
- uva_10180_Rope Crisis in Ropeland!_WA