JAVA单态模式

该模式较常见也是使用最频繁的设计模式之一。单态模式的主要作用是保证在JAVA应用程序中某些特定的类只有一个实例存在。

该模式的好处: 节省内存及系统开销,使用合适的中间件(.NET Remoting),可以把SINGLETON模式扩展为跨多个CLR或多个计算机工作。任何类都可以方便的转换为SINGLETON模式。只在第一次使用时进行创建。并且它由于限制了实例个数,有利于垃圾回收。

缺点:不能继承、效率问题、调用不透明(调用者知道自己在调用谁)

示例:

常用于数据库访问、单点登录等。下面的代码演示了常用的单态模式的写法:

时间: 2024-10-10 06:30:48

JAVA单态模式的相关文章

Java单态模式(Singleton模式)

定义:Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在. 在很多操作中,比如建立目录 数据库连接都需要这样的单线程操作. 还有,singleton能够被状态化:这样,多个单态类在一起就可以作为一个状态仓库一样向外提供服务,比如,你要论坛中的帖子计数器,每次浏览一次需要计数,单态类能否保持住这个计数,并且能synchronize的安全自动加1,如果你要把这个数字永久保存到数据库,你可以在不修改单态接口的情况下方便的做到. 另外方面,Singleton也能够

java 构造方法私有化及单态模式

构造方法私有化及单态模式 构造方法封装 类的封装性不光体现在对属性的封装上,实际上方法也是可以被封装的,当然在方法封装中也包含了对构造方法的封装.例如:以下的代码,就是对构造方法进行了封装. [java] view plaincopyprint? class Singleton{ private Singleton(){  // 将构造方法进行了封装,私有化 } public void print(){ System.out.println("Hello World!!!") ; }

java中单态模式或单例模式(Singleton)有什么意义?

8.单态模式或单例模式(Singleton) (视频下载) (全部书籍)单态模式有什么用呢?想一下Adobe Photoshop ,处理两张图,会启动两个photoshop吗?多耗费内存呀! ( Consider Adobe or oracle, process two images with two adobes?),所以单态模式在公司编程是非常重要的.有很多场合都要求,对象只能存在一个,多了的话就太耗费资源.(马克-to-win) class Photoshop {/* 通过调试发现写成 s

JAVA单态设计模式

核心--在类的内部把构造器私有化,同时在内部产生对象,并通过类.静态方法(static)返回实例化对象的引用   设计模式是在大量的实践总结和理论化之后优选的代码结果,编程风格,以及解决问题的思考方式.设计模式就像是经典的棋谱,不同的棋局我们用不同的棋谱. 单态设计模式:采取一定的方法保证在整个软件系统中,对某个类只能产生一个对象实例,并且该类只提供一个取得其对象的实例方法. 在java中实现单态模式只需要执行以下三步:     1.将类的构造方法的访问权限声明为private.这样就不能用ne

Java工厂模式(Factory模式)

工厂模式定义:提供创建对象的接口. 为何使用工厂模式 工厂模式是我们最常用的模式了,著名的Jive论坛,就大量使用了工厂模式,工厂模式在Java程序系统可以说是随处可见. 为什么工厂模式是如此常用?因为工厂模式就相当于创建实例对象的new,我们经常要根据类Class生成实例对象,如A a=new A() 工厂模式也是用来创建实例对象的,所以以后new时就要多个心眼,是否可以考虑实用工厂模式,虽然这样做,可能多做一些工作,但会给你系统带来更大的可扩展性和尽量少的修改量. 我们以类Sample为例,

什么是单态模式

什么是单态模式? 单态模式的全部实例是一个共享实例,创建的所有实例都是一个共享实例.J2EE应用的大量组件中,都要保证一个类只有一个实例.使用单例模式可以避免java类的频繁的实例化. 让相同类的全部实例共享一个内存区.

Spring 实现两种设计模式:工厂模式和单态模式

在Spring 中大量使用的以下两种设计模式:工厂模式和单态模式. 工厂模式可将Java 对象的调用者从被调用者的实现逻辑中分离出来,调用者只需关心被调用者必须满足的规则(接口) ,而不必关心实例的具体实现过程.这是面向接口编程的优势,能提高程序的解耦,避免所有的类以硬编码方式耦合在一起. 如果所有的类直接耦合,极易形成"骨牌效应",假如B 类调用了A 类,一旦A 类需要修改,则B 类也需要修改:假如C 类调用了B 类,则C 类也需要修改......依次类推,从而导致整个系统都需要改写

PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化)/约束类型/魔术方法小结

  前  言  OOP  学习了好久的PHP,今天来总结一下PHP中的抽象类与抽象方法/静态属性和静态方法/PHP中的单利模式(单态模式)/串行化与反串行化(序列化与反序列化). 1  PHP中的抽象类与抽象方法 1.什么是抽象方法?              没有方法体 {} 的方法,必须使用abstract 关键字修饰.这样的方,我们叫做抽象方法.                    abstract function say(); //    抽象方法 2.什么是抽象类?        

Java 策略模式

Java 策略模式 @author ixenos 定义 1.封装算法:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换 2.分割行为和环境:对用户屏蔽内部实现,使客户端在调用算法的时候能够互不影响地互换 策略模式的实现(面向接口编程) 方法: 1.接口多态:策略模式的用意是针对一组算法,将每个算法封装到具有共同接口的独立的类中,从而使他们之间可以相互替换 2.具体策略提供不同算法,环境负责维持和查询策略,把具体策略和环境分割开来,使得算法可以在不影响客户端和环境的情况下修改 角色分工: