- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
23种设计模式详解分析
设计模式详解 何谓设计模式 在面向对象程序设计(OOP)过程中,我们经常会遇到很多重复出现的问题,总结解决这些问题的成功经验和最佳实践便形成了设计模式(Design Pattern)。 其核心思想是将可重用的解决方案总结出来,并分门别类。从而指导设计,减少代码重复和优化体系结构。 采用设计模式的益处 重用,避免代码重复冗余 优化体系结构 提升系统的可维护性和弹性 代码更加容易测试,利于测试驱动 为性能优化提供便利 使软件质量更加有保证 增强代码可读性,便于团队交流 有助于整体提升团队水平 设计模式、重构和Antiparttern 设计模式是成功经验和最佳实践的总结,指导设计人员采用正确精良的设计。 重构(Refactor)专注于软件的渐进完善。通过消除重复冗余代码,并将存在体系结构缺陷的代码重新构建成符合设计模式的代码来达到设计精良软件的目的。 Antiparttern与设计模式相反,是失败教训的总结。其澄清了许多设计中经常面临的陷阱和容易混淆的问题,能有效防止开发人员犯错误,从而做出正确选择。 设计模式与UML 设计模式是OOP的方法论,其内容描述基本是围绕对象的结构和协作关系设计。因此需要一种直观的模型将上述内容清晰地表示出来。 统一建模语言(UML)是OOP的建模语言,其核心就是把软件的设计思想通过建模的方法表达出来。故非常适合于表达设计模式。同时UML已经被广泛用于软件设计,这也推动了设计模式的应用。 设计模式分类 Creational patterns 帮助我们更好地组织创建对象的代码。增强弹性,以应付在不同情况下创建和初始化对象的代码变更。 Structural patterns 增强代码重用,优化对象结构,使其职责分明、粒度合适,以松耦合的体系结构来减低代码的rippling效应。 Behavioral patterns 更好地定义对象间的协作关系,使复杂的程序流程变得清晰。 Creational Patterns The Factory Pattern The Abstract Factory Pattern The Singleton Pattern The Prototype Pattern The Factory Pattern Factory是最常见的设计模式之一,可帮助我们组织创建对象的代码,通常用于以下两种情况: 创建复杂的对象,并进行初始化。 根据不同的环境(输入参数),创建不同用途的对象。一般这些对象都是实现了相同的接口或继承于同一基类。 Factory模式的JDBC应用 OracleDataSource负责创建链接,由函数getConnection获取链接 Factory模式应用于DAO XMLDB是XML数据库访问接口,针对Oracle和DB2分别提供了实现。XMLDB_DAOFactory为类工厂,根据输入的参数dbtype,创建不同的XMLDB实现类。 更多的Factory模式应用例子 Hibernate的SessionFactory,将数据库表和对象的映射关系写入XML格式的配置文件,然后由SessionFactory根据它来创建Session。 EJB容器本身就是一个EJB的Factory。当客户端调用EJB的时候,由容器创建EJB供其使用。 The Abstract Factory Pattern 在介绍Abstract Factory之前,先回顾下Factory模式的JDBC应用。由于很多系统需要访问不同的数据库,故在得到Connection之前要获取不同的DataSource。于是我们又遇到了Factory模式所要解决的问题:创建一个Factory来获取不同的DataSource。而DataSource本身又是一个Factory。 由上述我们不难引出Abstract Factory的定义,就是用于创建Factory的Factory。其设计思想和Factory的完全一致,不过是一种特殊的Factory而已。 Abstract Factory的EJB应用 EJB容器需要支持多种数据库,每种不同的数据库有相应的DataSource。因此容器先根据部署文件里面的设置,创建各个DataSource,然后绑定到其目录服务中。使用DataSource的时候只要从目录服务中获取即可,故其充当了DataSource的Abstract Factory。 实际上,EJB容器将所有资源(JMS Factory、EJB Home等)的Factory全绑定到了目录服务中,使用这些Factory的时候都是由目录服务获取,因此目录服务是所有资源Factory的Abs
您可能关注的文档
最近下载
- DL_T 267-2023 油浸式全密封卷铁心配电变压器使用技术条件.pdf VIP
- 一种新型的化纤打包机.pdf VIP
- 山东黄金集团招聘考试题库.pdf
- 贵州省黔西南州2024-2025学年七年级下学期期末语文试题(含答案).pdf VIP
- 环形混凝土电杆标准.pdf VIP
- 专项施工方案.docx VIP
- NB∕T 47018.4-2022 承压设备用焊接材料订货技术条件 第4部分:埋弧焊钢焊丝和焊剂.pdf
- 山西博大集团寿阳京鲁煤业有限责任公司兼并重组整合矿井地质报告.doc
- 贵州省黔西南州2024-2025学年七年级下学期期末考试语文试题(含答案).docx VIP
- 烟气脱硫废水处理系统培训课件.pptx VIP
文档评论(0)