java设计模式GOF23之创建者模式

原创 2016年08月28日 21:25:53

设计模式就是一种思维,一种思考方式。

编程的语言只是工具,思维才是王道。

GOf :group of  four  是国外的4个大牛总结出来的代码的一种思维方式、

今天先学习一样创建者模式的单列模式,它的核心作用是保证一个类只有一个对象,并且提供一个访问实列的全局访问点。

常见的应用背景。 window的任务管理器,回收站,数据库的连接池,web里面的servelet里面的application对象也是一个单列...

单列模式的作用;节省资源,提供内存的利用率。  

常见的五种单列模式

1.饿汉式 :线程 安全.调用效率高,但是不能延迟加载            

 2懒汉式: 线程安全, 调用效率不高,但是可以延迟加载              

 3双重检测锁式  (....)           

4静态内部内式   线程安全, 调用效率不高,但是可以延迟加载                   

 5枚举单列 :线程 安全.调用效率高,不能延迟加载 

 先来看一个饿汉式和懒汉式吧

//饿汉式
public class SigletonDemo
{
//先new 一个私有的对象  加载类的时候 立即创建这个对象是线程安全的
private static SingletonDemo instance=new SingletonDemo();
//构造器私有化
private SingletonDemo(){

}
//获取对象 方法不需要同步 调用效率高
public static SingleDemo getInstance(){
return instance;
}
}

//懒汉式  延迟加载

public class SigletonDemo
{
//不去创建 默认为空
private static SingletonDemo instance;
//构造器私有化
private SingletonDemo(){

}
//获取对象 方法需要同步 调用效率低  需要用的时候才调用节省了资源 
//synchronized  如果不同步的话多线程容易造成多个对象的创建 
public static synchronized SingleDemo getInstance(){
if(instance==null){
instance=new SingltonDemo()
}
return instance;
}
}


什么时候用饿汉式或者懒汉式呢

如果一个类的创建的代价比较高的话,推荐使用懒汉式(饿汉式,无论你是否使用,类创建的时候都会直接创建一个对象,内存的利用率不高)。

如果类的调用的效率比较频繁,建议使用饿汉式(懒汉式调用效率比较低,因为同步的原因会造成线程的等待)。

总而言之,饿汉式和懒汉式各有千秋,关键看你的需要了。

今天比较累,就不深入研究了,以后有时间好好总结。

版权声明:本文为博主原创文章,未经博主允许不得转载。

【GOF23设计模式】_原型模式JAVA233-234

一、S03E233_01【GOF23设计模式】_原型模式、prototype、浅复制、深复制、Cloneable接口二、S03E234_01【GOF23设计模式】_原型模式、反序列化实现深复制、效率对...

【GOF23设计模式】_责任链模式_公文审批_供应链系统的采购审批_异常链_过滤器和拦截器调用过程JAVA243

来源:http://www.bjsxt.com/ 一、S03E243_01【GOF23设计模式】_责任链模式、公文审批、供应链系统的采购审批、异常链、过滤器和拦截器调用过程package com.t...

GOF23设计模式之观察者模式的理解与实现2(使用java自带的观察者类和接口)

观察者模式的理解与实现,使用JDK自带的Observer类和Observable接口

233_尚学堂_高淇_java300集最全视频教程_【GOF23设计模式】_原型模式_prototype_浅复制_深复制_反序列化实现深复制

原型模式分为深复制和浅复制 浅复制:只是拷贝对象本身,不拷贝对象的属性,所以”浅“。复制后的对象自然在内存中位于不同的地址中,因为本质上是两个对象,所以内存中的地址自然不同。但是复制之后的对象的属性...

【GOF23设计模式】_适配器模式、对象适配器、类适配器、开发中场景JAVA235

一、S03E235_01【GOF23设计模式】_适配器模式、对象适配器、类适配器、开发中场景...

232_尚学堂_高淇_java300集最全视频教程_【GOF23设计模式】_建造者模式详解

建造者模式:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示]  与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指...

【GOF23设计模式】_观察者模式_广播机制_消息订阅_网络游戏对战原理_自带类与接口JAVA251-252

来源:http://www.bjsxt.com/ 一、S03E251_01【GOF23设计模式】_观察者模式、广播机制、消息订阅、网络游戏对战原理package com.test.observer;...

【GOF23设计模式】_工厂模式JAVA229-231

来源:http://www.bjsxt.com/ 一、S03E229_01【GOF23设计模式】_简单工厂模式详解、面向对象设计原则、开闭原则、依赖反转原则、迪米特法则 没有工厂模式的情况pack...

【GOF23设计模式】_模板方法模式_钩子函数_方法回调_好莱坞原则JAVA249

来源:http://www.bjsxt.com/ 一、S03E249_01【GOF23设计模式】_模板方法模式、钩子函数、方法回调、好莱坞原则package com.test.templateMet...

【GOF23设计模式】_迭代器模式_JDK内置迭代器_内部类迭代器JAVA244

来源:http://www.bjsxt.com/ 一、S03E244_01【GOF23设计模式】迭代器模式_JDK内置迭代器、内部类迭代器package com.test.iterator; /**...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java设计模式GOF23之创建者模式
举报原因:
原因补充:

(最多只允许输入30个字)