




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设计模式 Design Patterns,面向对象编程,对象(Object) 对问题领域中事物的抽象 万物皆对象 唯一 属性行为 状态 属于某类,Object-Oriented Programming,问题领域(Program Domain) 软件系统所模拟的真实世界中的系统 ,类(Class) 一组具有相同属性和行为的对象的抽象 ,接口(Interface) 系统对外提供的所有服务 接口类型 描述能够提供哪些服务,不包含服务的实现细节,抽象(Abstract) 从特定角度出发,从已存在的一些事物中抽取所关注的特性,形成一个新的事物的思维过程 从问题领域的事物到软件模型中对象的抽象 从对象到类的抽象 从子类到父类的抽象,基 本概念,面向对象编程,继承(Inheritance) 继承是子类使用父类的方法 ,Object-Oriented Programming,封装(Encapsulate) 隐藏对象的属性和实现细节,仅对外公开接口 ,多态(Polymorphism) 接口的多种不同的实现方式即为多态 ,3 大特征,面向对象编程,依赖(Dependency) 类之间的调用关系 ,Object-Oriented Programming,关联(Association) 类之间的特定对应关系 ,聚集(Aggregation) 整体与部分之间的关系 ,泛化(Generalization) 类之间的继承关系 ,实现(Realization) 类与接口之间的关系 ,5 种关系,单一职责原则(Single Responsibility Principle) 里氏替换原则(Liskov Substitution Principle) 依赖倒转原则(Dependence Inversion Principle) 接口隔离原则(Interface Segregation Principle) 迪米特法则 (Demeter Principle) 合成复用原则(Composite Reuse Principle),总原则:开闭原则(Open Close Principle) 对扩展开放,对修改关闭 为了使程序的扩展性好,易于维护和升级 在程序需要进行拓展的时候,不能去修改原有代码,而是要扩展原有代码,实现一个热插拔效果,设计模式六大原则,6 大原则, 应该有且仅有一个原因引起类的变更 ,类的复杂性降低 可读性提高 可维护性提高 变更风险低, 所有引用基类的地方必须能透明地使用其子类的对象 ,子类必须完全实现父类的方法 子类可以有自己的个性 覆盖或实现父类的方法时输入参数可以被放大(子类输入参数的类型宽于父类) 覆写或实现父类的方法时输出结果可以被缩小, 面向接口编程,依赖于抽象而不依赖于具体 ,高层模块不应该依赖底层模块,两者都应该依赖其抽象 抽象不应该依赖细节 细节应该依赖抽象, 接口尽量细化,同时接口中的方法尽量少 ,客户端不应该依赖它不需要的接口 类间的依赖关系应该建立在最小的接口上 接口要尽量小 接口要高内聚 定制服务 接口设计是有限度的, 一个对象应该对其他对象有最少的了解 ,只和朋友交流 朋友间也是有距离的 不是自己的就是自己的 谨慎使用Serializable(序列化), 尽量使用合成/聚合的方式,而不是使用继承 ,在面向对象设计中,可以通过两种方法在不同的环境中复用已有的设计和实现,即通过组合/聚合关系或通过继承,但首先应该考虑使用组合/聚合,组合/聚合可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少;其次才考虑继承,在使用继承时,需要严格遵循里氏代换原则,有效使用继承会有助于对问题的理解,降低复杂度,而滥用继承反而会增加系统构建和维护的难度以及系统的复杂度,因此需要慎重使用继承复用,设计模式概览,23 种模式,创建型模式 工厂方法模式 抽象工厂模式 单例模式 建造者模式 原型模式 结构型模式 适配器模式 装饰器模式 代理模式 门面模式 桥接模式 组合模式 享元模式 行为型模式 策略模式 模板方法模式 观察者模式 迭代子模式 责任链模式 命令模式 备忘录模式 状态模式 访问者模式 中介者模式 解释器模式, 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例 , 定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类 ,一个抽象产品类,可以派生出多个具体产品类 一个抽象工厂类,可以派生出多个具体工厂类 每个具体工厂类通常只能创建一个具体产品类的实例, 为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类 ,多个抽象产品类,每个抽象产品类可以派生出多个具体产品类 一个抽象工厂类,可以派生出多个具体工厂类 每个具体工厂类可以创建多个具体产品类的实例, 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 ,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可创建不同的表示, 使用共享对象可有效地支持大量的细粒度的对象 , 为其他对象提供一种代理以控制对这个对象的访问 , 要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层的接口,使得子系统更易于使用 , 将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 , 将抽象和实现解耦,使得两者可以独立地变化 , 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性 , 将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性 ,+,+,+, 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换 , 当对象的状态改变时,同时改变其行为 , 定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 , 定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新 , 它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象内部细节 , 使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,并沿着这条链传递该请求,直到有对象处理它为止 , 将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能 , 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态 , 封装一些作用于某种数据结构中的各元素的操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- IL4I1-IN-1-生命科学试剂-MCE
- 安全培训效果评审办法课件
- Hsp90-IN-41-生命科学试剂-MCE
- Herniarin-Standard-Methylumbelliferone-Standard-生命科学试剂-MCE
- HBeAg-ligand-1-生命科学试剂-MCE
- 小学医疗安全知识培训课件
- Glycocholic-acid-13C2-d4-生命科学试剂-MCE
- 2025年HED-系列厚膜阴极电泳涂料项目建议书
- 2025年宁波市鄞州区面向社会公开招聘社区专职工作者55人考前自测高频考点模拟试题及答案详解(网校专用)
- 快乐野营周记作文(14篇)
- 血液透析患者自我管理与健康教育
- 医疗决策遗嘱书写范文
- 建筑工程施工管理培训课件
- DB14-T 1737-2024 医疗护理员培训机构服务规范
- 物业经理聘用合同
- 理想二语自我对交际意愿的影响:二语坚毅和自信的链式中介作用
- 绳锯切割施工方案
- 职工基本医疗保险参保登记表
- 2024年社会工作者之初级社会综合能力考试题库含答案
- 学校品牌塑造校园文化的关键因素报告
- 污水厂职业病培训
评论
0/150
提交评论