电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

设计模式-01-设计模式与面向对象

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

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

设计模式-01-设计模式与面向对象

设计模式与面向对象设计模式与面向对象面向对象的两个方向性思维面向对象的两个方向性思维l向下,如何深入把握机器底层,从微观理解对象构造底层思维l语言构造l编译转换l对象内存模型l运行时机制l向上,如何将我们的周围世界抽象为程序代码抽象思维l面向对象l组件封装l设计模式l架构模式深入理解面向对象深入理解面向对象l向下:深入理解三大面向对象机制l封装,隐藏内部实现l继承,复用现有代码l多态,改写对象行为l向上:深刻把握面向对象机制所带来的抽象意义,理解如何使用这些机制来表达现实世界,掌握什么是“好的面向对象设计”软件设计固有的复杂性软件设计固有的复杂性l建筑商从来不会去想给一栋已建好的100层高的楼房底下再新修一个小地下室这样做花费极大而且注定要失败。然而令人惊奇的是,软件系统的用户在要求作出类似改变时却不会仔细考虑,而且他们认为这只是需要简单编程的事。lObject-Oriented Analysis and Design with Applications复杂性的几个诱因复杂性的几个诱因l问题领域的复杂性l客户需求本身就很复杂,客户与开发人员互相不理解l管理开发过程的困难l开发是由人完成的,人的组织、潜能存在巨大复杂性l软件可能的灵活性l软件为开发人员提供了极大的灵活性,而开发人员也很容易滥用这种灵活性l表征离散系统行为的困难l软件系统本质上是一个离散系统,其复杂度要远远大于连续系统。一个简单的外部事件可能破坏整个系统软件设计复杂的根本原因软件设计复杂的根本原因l软件设计复杂性的根本原因在于:变化l客户需求的变化l技术平台的变化l开发团队的变化l市场环境的变化l。如何解决复杂性?l分解l人们面对复杂性有一个常见的做法:即分而治之,将大问题分解为多个小问题,将复杂问题分解为多个简单问题。l抽象l更高层次来讲,人们处理复杂性有一个通用的技术,即抽象。由于不能掌握全部的复杂对象,我们选择忽视它的非本质细节,而去处理泛化和理想化了的对象模型。两种分解与抽象方法l结构化程序设计系统中的每个模块表示某个总体进程中的主要一步。l面向对象程序设计根据问题域中的关键抽象来分解系统。软件设计的目标l什么是好的软件设计?l软件设计的金科玉律:复用!l面向对象设计,为什么?l变化是复用的天敌!l面向对象设计最大的优势在于:抵御变化重新认识面向对象l隔离变化l从宏观层面来看,面向对象的构建方式更能适应软件的变化,能将变化所带来的影响减为最小l各司其职l从微观层面来看,面向对象的方式更强调各个类的“责任”,新增员工类型不会影响原来员工类型的实现代码这更符合真实的世界,也更能控制变化所影响的范围l对象是什么?l从概念层面讲,对象是某种拥有责任的抽象。l从规格层面讲,对象是一系列可被使用的公共接口。l从语言实现层面来看,对象封装了代码和数据。调整软件模块间耦合关系l耦合关系直接决定着软件面对变化时的行为l模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改l模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变面向对象设计准则l针对接口编程,而不是针对实现编程l客户无需知道所使用对象的特定类型,只需要知道对象拥有客户所期望的接口。l优先使用对象组合,而不是类继承l类继承通常为“白箱复用”,对象组合通常为“黑箱复用”l继承在某种程度上破坏了封装性,子类父类耦合度高;l对象组合则只要求被组合的对象具有良好定义的接口,耦合度低。l封装变化点l使用封装来创建对象之间的分界层,让设计者可以在分界层的一侧进行修改,而不会对另一侧产生不良的影响,从而实现层次间的松耦合。经典面向对象设计原则l依赖倒置原则(DIP)l高层模块(稳定)不应该依赖于低层模块(变化),二者都应该依赖于抽象。l抽象( 稳定) 不应该依赖于实现细节( 变化)l实现细节应该依赖于抽象l开放封闭原则(OCP)l类模块应该是可扩展的,但是不可修改;对扩展开放,对更改封闭经典面向对象设计原则l单一职责原则(SRP)l一个类应该仅有一个引起它变化的原因。lLiskov 替换原则(LSP)l子类必须能够替换它们的基类l接口隔离原则(ISP)l不应该强迫客户程序依赖于它们不用的方法设计模式简介l每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。lChristopher Alexanderl人是一个经验性的动物l设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。l软件设计模式是软件领域设计经验的归纳与汇集。GoF 23 种设计模式l历史性著作设计模式:可复用面向对象软件的基础一书中描述了23种经典面向对象设计模式,创立了模式在软件设计中的地位。l由于设计模式一书确定了设计模式的地位,通常所说的设计模式隐含地表示“面向对象设计模式”。但这并不意味“设计模式”就等于“面向对象设计模式”。面向对象与设计模式l面向对象设计模式解决的是“类与相互通信的对象之间的组织关系,包括它们的角色、职责、协作方式几个方面。l面向对象设计模式是“好的面向对象设计”,所谓“好的面向对象设计”是那些可以满足“应对变化,提高复用”的设计。l面向对象设计模式不像算法技巧,可以照搬照用,它是建立在对“面向对象”纯熟、深入的理解的基础上的经验性认识。掌握面向对象设计模式的前提是首先掌握“面向对象”!恰当使用设计模式l“什么时候、什么地点应用设计模式”比“理解设计模式结构本身”更为重要。设计模式的应用不宜先入为主,一上来就使用设计模式是对设计模式的最大误用。没有一步到位的设计模式。l现代软件设计的特征是需求的频繁变 “化”。如果没有需求变化,便没有面向对象,更没有“面向对象设计模式”。设计模式的要点便是“寻找变化点,然后在变化点处应用设计模式,从而来更好低应对需求的变化”模式分类l从目的来看:l创建型(Creational)模式:将对象的部分创建工作延迟到子类或者其他对象,从而应对需求变化为对象创建时具体类型实现引来的冲击。l结构型(Structural)模式:通过类继承或者对象组合获得更灵活的结构,从而应对需求变化为对象的结构带来的冲击。l行为型(Behavioral)模式:通过类继承或者对象组合来划分类与对象间的职责,从而应对需求变化为多个交互的对象带来的冲击。l从范围来看:l类模式处理类与子类的静态关系。l对象模式处理对象间的动态关系。

注意事项

本文(设计模式-01-设计模式与面向对象)为本站会员(苏****)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

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




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.