- 1、本文档共56页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
软件架构设计实战——基于SSM框架SoftwareArchitectureDesignPracticeBasedonSSMFramework
第2章典型软件设计模式123单例模式原型模式工厂模式4建造者模式5代理模式6MVC模式
单例模式单例(Singleton)模式是指一个类只有一个实例,且该类能自行创建这个实例的一种软件设计模式。例如,Windows中只能打开一个任务管理器,这样可以避免因打开多个任务管理器窗口而造成内存资源的浪费,或出现各个窗口显示内容的不一致等错误。单例模式在现实生活中的应用也非常广泛,例如公司CEO、部门经理等都属于单例模型。J2EE标准中的ServletContext和ServletContextConfig、Spring框架应用中的ApplicationContext、数据库中的连接池等也都是单例模式。1
单例模式单例模式主要具有3个特点:1.单例类只有一个实例对象;2.该单例对象必须由单例类自行创建;3.单例类对外提供一个访问该单例的全局访问点。1
单例模式单例模式在应用当中较为方便,且生命周期管理也比较简单,主要优点包括以下3个方面:①单例模式可以保证内存里只有一个实例,减少了内存的开销。②单例模式可以避免对资源的多重占用。③单例模式设置全局访问点,可以优化和共享资源的访问。1
单例模式单例模式主要有以下3个方面的缺点:①单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径,违背开闭原则。②在并发测试中,单例模式不利于代码调试。在调试过程中,如果单例中的代码没有执行完,也不能模拟生成一个新的对象。③单例模式的功能代码通常写在一个类中,如果功能设计不合理,则很容易违背单一职责原则。1
单例模式单例模式的应用场景主要有以下5个方面。1.需要频繁创建的一些类,使用单例模式可以降低系统的内存压力,减少垃圾回收(GarbageCollection简称GC)频率。2.某个类在运行期间只能生成一个对象的时候,如SpringMVC框架中的核心控制器DispatchServlet实例。3.某些类创建实例时占用资源较多,或实例化耗时较长,且经常使用,例如MyBatis框架中的SqlSessionFactory实例。4.某类需要频繁实例化,而创建的对象又频繁被销毁的时候,如多线程的线程池、网络连接池等。5.某个实例需要在应用中被共享使用,由于单例模式只允许创建一个对象,共享该对象可以节省内存,并加快对象访问速度。如Web应用中的配置管理对象。1
单例模式单例模式的结构在单例模式中必须由所在类来完成对象的创建,然后供其他类调用,一般称之为单例类;在访问类中通过单例类提供的静态方法获取单例类的实例,然后调用相应方法。1
单例模式单例模式的实现①懒加载单例模式publicclassLazySingleton{privatestaticvolatileLazySingletoninstance=null;//保证instance在所有线程中同步privateLazySingleton(){//private避免类在外部被实例化}publicstaticsynchronizedLazySingletongetInstance(){//getInstance方法前加同步if(instance==null){instance=newLazySingleton();}returninstance;}}1
单例模式单例模式的实现②预加载单例模式publicclassPreSingleton{privatestaticfinalPreSingletoninstance=newPreSingleton();privatePreSingleton(){}publicstaticPreSingletongetInstance(){returninstance;}}1
原型模式在有些系统中,存在大量相同或相似对象的创建问题,如果用传统的构造函数来创建对象,会比较复杂且耗时耗资源,用原型模式生成对象就比较高效。2
原型模式1.原型模式的定义与特点原型(Prototype)模式是指用一个已经创建好的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。用这种方式创建对象非常高效,根本无须知道对象创建的细节。而且Java自带的原型模式基于内存二进制流的复制,在性能上比直接创建
您可能关注的文档
- 基于SSM的软件架构设计-课程教学大纲.doc
- 软件架构设计实践— 基于SSM框架 课件 第1章 软件设计模式导论.pptx
- 软件架构设计实践— 基于SSM框架 课件 第3章 认识软件架构.pptx
- 软件架构设计实践— 基于SSM框架 课件 第4章 Spring框架基础.pptx
- 软件架构设计实践— 基于SSM框架 课件 第5章 Spring的IoC机制.pptx
- 软件架构设计实践— 基于SSM框架 课件 第6章 Spring的AOP机制.pptx
- 软件架构设计实践— 基于SSM框架 课件 第7章 Spring MVC基础.pptx
- 软件架构设计实践— 基于SSM框架 课件 第8章 Spring MVC高级功能.pptx
- 软件架构设计实践— 基于SSM框架 课件 第9章 Mybatis框架基础.pptx
- 软件架构设计实践— 基于SSM框架 课件 第10章 单表的CRUD操作.pptx
- 英语人教PEP版八年级(上册)Unit4+writing+写作.pptx
- 人美版美术四年级(上册)8 笔的世界 课件 (1).pptx
- 人美版美术七年级(上册)龙的制作.pptx
- 英语人教PEP版六年级(上册)Unit 2 第一课时.pptx
- 数学苏教版三年级(上册)3.3 长方形和正方形周长的计算 苏教版(共12张PPT).pptx
- 音乐人教版八年级(上册)青春舞曲 课件2.pptx
- 音乐人教版四年级(上册) 第一单元 音乐知识 附点四分音符|人教版.pptx
- 英语人教PEP版四年级(上册)Unit 6 Part B let's learn 1.pptx
- 道德与法治人教版二年级(上册)课件-3.11大家排好队部编版(共18张PPT).pptx
- 人美版美术七年级(上册)《黄山天下奇》课件1.pptx
文档评论(0)