那位高手能详解一下单例模式 观察者模式,观察者模式...

设计模式(3)
1.单例模式
懒汉式(线程不安全)
public class Singleton{
&&& private Singleton(){
&&& private static Singleton singleton=
&&& public static Singleton getInstance(){
&&&&&&& if(singleton==null){
&&&&&&&&&&& singleton=new Singleton();
public class Singleton{
&&& private Singleton(){
&&& private static final Singleton singleton=new Singleton();
&&& public static Singleton getInstance(){
解决懒汉式线程不安全的问题,在getInstance方法上加synchronized关键字
即 public static synchronized Singleton getInstance()
但是直接在方法上加synchronized关键字这样的效率低下,可以采取以下方式:
public Class Singleton{
&&& private Singleton singleton=
&&& private Singleton(){}
&&& public static Singleton getInstance(){
&&&&&&&&& if(singleton==null){& //第一次检查
&&&&&&&&&&&&& synchronized(Singleton.class){
&&&&&&&&&&&&&&&&&& if(singleton==null){&& //第二次检查
&&&&&&&&&&&&&&&&&&&&&&&& singleton=new Singleton();
&&&&&&&&&&&&&&&&&& }
&&&&&&&&&&&&& }
&&&&&&&&& }
2.观察者模式
观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时观察一个主题对象。这个主题对象在发生变化时,会通知所有的观察者对象,使它们能够更新自己。
一般Subject和Observer定义为抽象类或接口,图中四个角色抽象主题、具体主题、抽象观察者和具体观察者
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:11067次
排名:千里之外
原创:34篇
(2)(3)(4)(14)(13)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'救命呀----如何将单例模式改写成最多实例化指定个数(如2个)实例【java吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:650,310贴子:
救命呀----如何将单例模式改写成最多实例化指定个数(如2个)实例收藏
那位高手帮帮我呀,单例模式中的类只能实例化一个,那怎么改写单例模式,使得可以实例化指定个数实例的类。下面是懒汉式单例类Public class LazySingleton {&&& private static MyClass uniqueI&&& //其他成员变量声明&&& private LazySingleton() {…} &&& public static MyClass getInstance() && {&&&&&&& if (uniqueInstance==null)&&&&&&&&&&& uniqueInstance=new LazySingleton();&&&&&&& return uniqueInstance&&& }&&& //其他成员方法声明}
南昌java培训选华信智原,先就业后付款,专业对口就业,零基础入学,4个月成java精英.华信智原java培训,全国千余家互联网TD公司人才储备合作,企业随你选.
可以看一下设计模式,阎红编写的
能new 出2个实例的类,还叫单例类么?
声明,这个不是机密随手写的
登录百度帐号推荐应用

参考资料

 

随机推荐