黑马程序员 Java(三)>单例设计模式<
2013-09-06 23:06
330 查看
设计模式
解决某一类问题最行之有效的方法。java中23种设计模式单例设计模式:解决一个类在内存只存在一个对象。
想要保证对象唯一
为了避免其他程序过多建立该类对象。先禁止其他程序建立该类对象还为了让其他程序可以访问到该类对象,只好在本类中,自定义一个对象。
为了方便其他程序对自定义对象的访问,可以对外提供一些访问方式。
步骤
将构造函数私有化。在类中创建一个本类对象。
提供一个方法可以获取到该对象。
对于事物该怎么描述,还怎么描述。
当需要将该事物的对象保证在内存中唯一时,就将以上的三步加上即可。
代码:
饿汉式:先初始化对象,类一进内存就加载
class Single { private static Single s = new Single(); private Single(){} public static Single getInstance() { return s; } }
懒汉式:类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象
class Single { private static Single s = null; private Single(){} public static Single getInstance() { if(s==null) { synchronized(Single.class) { if(s==null) s = new Single(); } } return s; } }
由于在多线程访问时懒汉式可能会出现创建出多个实例,而若对其使用synchronized的话,则又会降低程序性能。所以推荐使用恶汉式
相关文章推荐
- JAVA设计模式(16) —<行为型>迭代子模式(Iterator)
- JAVA设计模式(7) —<结构型>装饰模式(Decorator)
- JAVA设计模式(9) —<结构型>外观模式(Facade)
- JAVA设计模式(17) —<行为型>责任链模式(Chain of Responsibility)
- 黑马程序员_<<装饰设计模式>>
- JAVA设计模式(15) —<行为型>观察者模式(Observer)
- JAVA设计模式(6) —<结构型>适配器模式(Adapter)
- Java笔记2 面向对象<2>static关键字、main函数、静态运用、单例设计模式
- JAVA设计模式(21) —<行为型>访问者模式(Visitor)
- JAVA设计模式(22) —<行为型>中介者模式(Mediator)
- <<单例设计模式>>--黑马程序员
- Java 设计模式 <工厂模式>
- JAVA设计模式(11) —<结构型>组合模式(Composite)
- JAVA设计模式(12) —<结构型>享元模式(Flyweight)
- JAVA设计模式(23) —<行为型>解释器模式(Interpreter)
- JAVA设计模式(14) —<行为型>模板方法模式(Template Method)
- JAVA设计模式(1) —<创建型>工厂方法模式(Factory Method)
- JAVA设计模式(18) —<行为型>命令模式(Command)
- JAVA设计模式(2) —<创建型>抽象工厂模式(Abstract Factory)
- JAVA设计模式(3) —<创建型>单例模式(Singleton)