




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机学院软件工程系 设计模式 授课 张金荣Email zhjr2000 zhjr QQ zhjr 即1211460305 电话GoF 创建型模式 第3章 3 1SimpleFactoryPattern 简单工厂模式 3 2FactoryMethodPattern 工厂方法模式 3 3AbstractFactoryPattern 抽象工厂模式 3 4BuilderPattern 建造者模式 3 5PrototypePattern 原型模式 3 6SingletonPattern 单例模式 目录 GoF 创建型模式 第3章 FactoryPattern 工厂模式 SingletonPattern 单例模式 本章重点 本章难点 BuilderPattern 建造者模式 AbstractFactoryPattern 抽象工厂模式 3 6SingletonPattern 单例模式 如何创建一个对象 newMyObject 要使用new必须要求什么 3 6SingletonPattern 单例模式 能否多次实例化一个类取决于 所以 那么究竟如何生产单例 3 6SingletonPattern 单例模式 想一想static关键字的使用 3 6SingletonPattern 单例模式 3 6SingletonPattern 单例模式 3 6SingletonPattern 单例模式 3 6SingletonPattern 单例模式 上面的经典的单例模式完美吗 在涉及多线程时会出问题 如何纠正 请仔细看书89 91页 3 6SingletonPattern 单例模式 importjava util ClassSingleton privatestaticSingletoninstance 注意采用PrivateprivateSingleton publicstaticSingletongetInstance if instance null 1Instance newSingleton 2returninstance 3 如果两个线程同时调用该代码块 如何 3 6SingletonPattern 单例模式 解决方法 加代码同步处理 J2SESDK中的线程同步使用同步方法Java中同步比较简单 因为所有对象都有它们与之对应的隐式管程 进入某一对象的管程 就是调用被synchronized关键字修饰的方法 当一个线程在一个同步方法内部时 所有试图调用该方法的其他线程必须等待 为了退出管程 并将对象的控制权交给其他等待的线程 拥有管程的线程仅需从同步方法中返回 方法 在方法前加synchronized关键字 3 6SingletonPattern 单例模式 使用同步语句 尽管在创建的类的内部创建同步方法是获得同步的简单和有效方法 但它并非在任何时候都有效 假设想获得不为多线程访问设计的类对象的同步访问 该类没有用到synchronized方法 而且该类不是我们自己设计的 而是第三方创建的 不能获得它的源代码 就不能在相关方法前加synchronieze修饰符 如下 Synchronzed object 同步的语旬 3 6SingletonPattern 单例模式 同步方法 publicsynchronizedstaticSingletongetInstance if instance null 1Instance newSingleton 2returninstance 3 3 6SingletonPattern 单例模式 同步语句 publicstaticSingletongetInstance synchronized Singleton class if instance null Instance newSingleton returninstance 3 6SingletonPattern 单例模式 上面两种方法有什么性能上的优劣 第二种方法需要改进吗 有其他方式解决这个问题吗 3 6SingletonPattern 单例模式 publicstaticSingletongetInstance if instance null synchronized Singleton class if instance null instance newSingleton returninstance 第二种方法的改进 饿汉式单态类 importjava util classSingleton privatestaticSingletoninstance newSingleton privateSingleton publicstaticSingletongetInstance returninstance 这种方式有什么缺陷吗 两种单态类的比较 饿汉式单态类在自己被加载时就将自己实例化 单从资源利用效率角度来讲 这是比懒汉式单态类稍差些 从速度和反应时间角度来讲 则比懒汉式单态类稍好些 懒汉式单态类在实例化时必须处理好在多个线程同时首次引用此类时 实例化函数内部关键段的访问限制问题 创建型模式抽象了实例化过程 它们帮助一个系统独立于如何创建 组合和表示它的那些对象 一个类创建型模式使用继承改变被实例化的类 一个对象创建型模式将实例化委托给另一个对象 第3章 小结 在这些模式中有两个不断出现的主旋律 第一 它们都将关于该系统使用哪些具体的类的信息封装起来 第二 它们隐藏了这些类的实例是如何被创建和放在一起的 整个系统关于这些对象所知道的是由抽象类所定义的接口 因此 创建型模式在什么被创建 谁创
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年福建省古田县人力资源和社会保障局招聘10人考前自测高频考点模拟试题带答案详解
- 2025湖南永州市零陵区第二批公开引进急需紧缺专业人才(医疗岗9人)模拟试卷及答案详解(历年真题)
- 2025赤峰市中心医院招聘8控制数人员考前自测高频考点模拟试题及答案详解(易错题)
- 2025广东汕头大学医学院教务处医学教育拓展项目教辅人员招聘1人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年宁波市鄞州区面向社会公开招聘社区专职工作者55人模拟试卷及答案详解(典优)
- 2025贵州省体育局直属事业单位第十三届贵州人才博览会引才1人模拟试卷有完整答案详解
- 2025重庆泰科防务科技有限公司招聘8人笔试历年参考题库附带答案详解
- 2025重庆两江新区人才发展集团有限公司派往泰科防务科技(重庆)有限公司招聘8人笔试历年参考题库附带答案详解
- 2025辽宁葫芦岛市南票区招聘区属国有企业高级管理人员3人笔试历年参考题库附带答案详解
- 2025贵州关岭自治县农旅产业投资(集团)有限责任公司引聘人才(第一批次)笔试历年参考题库附带答案详解
- 2025广西崇左凭祥市委宣传部招聘编外工作人员1人考试参考题库及答案解析
- 2025江西赣州南康赣商村镇银行招聘4人考试参考题库及答案解析
- 社保协议书模板6篇
- 企业安全生产责任书范本大全
- 工艺设备变更风险评估报告模板
- 红星照耀中国考试真题及答案
- 2025离婚起诉状民事诉状(离婚案件用)
- 前端Vue3项目实战教程
- 国开(河北)2024年秋《现代产权法律制度专题》形考作业1-4答案
- 运用PDCA循环降低住院患者雾化吸入的不规范率品管圈成果汇报
- 感触最深的一件事七年级作文大全600字
评论
0/150
提交评论