欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    设计模式单例模式.pptx

    • 资源ID:87500168       资源大小:2.03MB        全文页数:23页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    设计模式单例模式.pptx

    大纲w单例模式概述w单例模式的结构与实现w单例模式的应用实例w饿汉式单例与懒汉式单例w单例模式的优缺点与适用环境第1页/共23页单例模式概述Windows任务管理器任务管理器在正常情况下只能打开唯一一个任务管理器!第2页/共23页单例模式概述如何保证一个类只有一个实例并且这个实例易于被访问?(1)全局变量:可以确保对象随时都可以被访问,但不能防止创建多个对象(2)让类自身负责创建和保存它的唯一实例,并保证不能创建其他实例,它还提供一个访问该实例的方法单例模式第3页/共23页单例模式概述单例模式的定义对象创建型模式单单例例模模式式:确保一个类只只有有一一个个实实例例,并提供一个全全局局访访问点问点来访问这个唯一实例。Singleton Pattern:Ensure a class has only one instance,and provide a global point of access to it.Only one!Only one!第4页/共23页单例模式概述单例模式的定义要点:某个类只能有一个实例只能有一个实例必须自行创建这个实例自行创建这个实例必须自行向整个系统提供这个实例自行向整个系统提供这个实例第5页/共23页单例模式的结构与实现单例模式的结构第6页/共23页单例模式的结构与实现单例模式的结构单例模式只包含一个单例角色:Singleton(单例)第7页/共23页单例模式的结构与实现单例模式的实现私有构造函数静态私有成员变量(自身类型)静态公有的工厂方法class Singleton private static Singleton instance=null;/静态私有成员静态私有成员变量变量 /私有构造函数私有构造函数 private Singleton()/静态公有工厂方法,返回唯一实例静态公有工厂方法,返回唯一实例 public static Singleton GetInstance()if(instance=null)instance=new Singleton();return instance;第8页/共23页单例模式的应用实例实例说明某软件公司承接了一个服务器负载均衡(Load Balance)软件的开发工作,该软件运行在一台负载均衡服务器上,可以将并发访问和数据流量分发到服务器集群中的多台设备上进行并发处理,提高了系统的整体处理能力,缩短了响应时间。由于集群中的服务器需要动态删减,且客户端请求需要统一分发,因此需要确保负载均衡器的唯一性,只能有一个负载均衡器来负责服务器的管理和请求的分发,否则将会带来服务器状态的不一致以及请求分配冲突等问题。如何确保负载均衡器的唯一性是该软件成功的关键,试使用单例模式设计服务器负载均衡器。第9页/共23页单例模式的应用实例实例类图服务器负载均衡器结构图第10页/共23页单例模式的应用实例实例代码(1)LoadBalancer:负载均衡器类,充当单例角色(2)Program:客户端测试类演示演示演示演示参考代码参考代码(DesignPatternSingletonSample)第11页/共23页单例模式的应用实例结果及分析第12页/共23页饿汉式单例与懒汉式单例饿汉式单例类饿汉式单例类(Eager Singleton)第13页/共23页饿汉式单例与懒汉式单例饿汉式单例类饿汉式单例类(Eager Singleton)class EagerSingleton private static EagerSingleton instance=new EagerSingleton();private EagerSingleton()public static EagerSingleton GetInstance()return instance;第14页/共23页饿汉式单例与懒汉式单例懒汉式单例类与双重检查锁定懒汉式单例类(Lazy Singleton)第15页/共23页饿汉式单例与懒汉式单例懒汉式单例类与双重检查锁定双重检查锁定class Singleton private static Singleton instance=null;private Singleton()public static Singleton GetInstance()if(instance=null)instance=new Singleton();return instance;多个线程同时访问将导致创建多个单例对象!怎么办?第16页/共23页饿汉式单例与懒汉式单例懒汉式单例类与双重检查锁定双重检查锁定class LazySingleton private static LazySingleton instance=null;/程序运行时创建一个静态只读的辅助对象程序运行时创建一个静态只读的辅助对象private static readonly object syncRoot=new object();private LazySingleton()public static LazySingleton GetInstance()/第一重判断,先判断实例是否存在,不存在再加锁处理第一重判断,先判断实例是否存在,不存在再加锁处理if(instance=null)/加锁的程序在某一时刻只允许一个线程访问加锁的程序在某一时刻只允许一个线程访问lock(syncRoot)/第二重判断第二重判断 if(instance=null)instance=new LazySingleton();/创建单例实例创建单例实例return instance;双重检查锁定第17页/共23页饿汉式单例与懒汉式单例饿汉式单例类与懒汉式单例类比较饿汉式单例类:无须考虑多个线程同时访问的问题;调用速度和反应时间优于懒汉式单例;资源利用效率不及懒汉式单例;系统加载时间可能会比较长懒汉式单例类:实现了延迟加载;必须处理好多个线程同时访问的问题;需通过双重检查锁定等机制进行控制,将导致系统性能受到一定影响第18页/共23页单例模式的优缺点与适用环境模式优点提供了对唯一实例的受控访问可以节约系统资源,提高系统的性能允许可变数目的实例(多例类)第19页/共23页单例模式的优缺点与适用环境模式缺点扩展困难(缺少抽象层)单例类的职责过重由于自动垃圾回收机制,可能会导致共享的单例对象的状态丢失第20页/共23页单例模式的优缺点与适用环境模式适用环境系统只需要一个实例对象,或者因为资源消耗太大而只允许创建一个对象客户调用类的单个实例只允许使用一个公共访问点,除了该公共访问点,不能通过其他途径访问该实例第21页/共23页ENDENDENDEND第22页/共23页感谢您的观看!第23页/共23页

    注意事项

    本文(设计模式单例模式.pptx)为本站会员(莉***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开