java单例设计模式
2014-08-05 22:24
134 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1饿汉式
public class A{
private static A a = new A();
private A(){}
public static A getInstance(){
return a;
}
}
-----------------------------------------------------------------------------------------------
2.懒汉式
public class B{
privateB(){}
private static B b = null;
pu
4000
bllicstatic B getInstance(){
if(b==null){
b = new B();
}
return b;
}
}
---------------------------------------------------------------------------------------------
3. 多线程下
public class C{
private C(){}
private static C c =null;
public static C getInstance(){
if(c==null){
synchronized(C.class){
if(c==null){
c = new C();
}
}
}
}
return c;
}
}
--------------------------------------------------------------------------------------------------------
public D{
private D(){}
private static class D_Holder{
public final static D d = new D();
}
public static D getInstance(){
return D_Holder.d;
}
}
--------------------------------------------------------------------------------------------------------------------------------------
//E.D.getName();------------------------>
enum E {
D("单例", 20); //构造---
private String name;
private int age;
private E(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
1饿汉式
public class A{
private static A a = new A();
private A(){}
public static A getInstance(){
return a;
}
}
-----------------------------------------------------------------------------------------------
2.懒汉式
public class B{
privateB(){}
private static B b = null;
pu
4000
bllicstatic B getInstance(){
if(b==null){
b = new B();
}
return b;
}
}
---------------------------------------------------------------------------------------------
3. 多线程下
public class C{
private C(){}
private static C c =null;
public static C getInstance(){
if(c==null){
synchronized(C.class){
if(c==null){
c = new C();
}
}
}
}
return c;
}
}
--------------------------------------------------------------------------------------------------------
public D{
private D(){}
private static class D_Holder{
public final static D d = new D();
}
public static D getInstance(){
return D_Holder.d;
}
}
--------------------------------------------------------------------------------------------------------------------------------------
//E.D.getName();------------------------>
enum E {
D("单例", 20); //构造---
private String name;
private int age;
private E(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
相关文章推荐
- 用Java实现的设计模式系列(3)--Builder
- Java设计模式
- 在Java中应用设计模式 - Factory Method
- java设计模式之创建模式--singleton
- 深入浅出基于Java的解释器设计模式
- 用Java实现的设计模式系列(1)-Factory
- 深入浅出基于Java的代理设计模式
- Java设计模式专辑
- Java设计模式使用率爬行榜
- Java的建造设计模式
- 追MM与设计模式(java的32种设计模式)
- Java设计模式之Factory
- Java设计模式之Factory
- Java设计模式使用率爬行榜
- [收藏]追MM与JAVA设计模式
- Java设计模式之工厂模式篇
- 追MM与Java的23种设计模式
- 从Java类库看设计模式
- 追MM与Java的23种设计模式
- 在Java中应用设计模式 - Factory Method