为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

设计模式学习分享ppt课件

2021-01-25 36页 ppt 11MB 9阅读

用户头像 机构认证

爱赢

公司经营范围:网络软件设计、制作、图文设计、影视制作(编辑)

举报
设计模式学习分享ppt课件设计模式DesignPatterns.面向对象编程对象(Object)『对问题领域中事物的抽象』◆万物皆对象◆唯一◆属性行为◆状态◆属于某类Object-OrientedProgramming问题领域(ProgramDomain)『软件系统所模拟的真实世界中的系统』类(Class)『一组具有相同属性和行为的对象的抽象』接口(Interface)『系统对外提供的所有服务』『接口类型』描述能够提供哪些服务,不包含服务的实现细节抽象(Abstract)『从特定角度出发,从已存在的一些事物中抽取所关注的特性,形成一个新的事物的思维过程...
设计模式学习分享ppt课件
模式DesignPatterns.面向对象编程对象(Object)『对问题领域中事物的抽象』◆万物皆对象◆唯一◆属性行为◆状态◆属于某类Object-OrientedProgramming问题领域(ProgramDomain)『软件系统所模拟的真实世界中的系统』类(Class)『一组具有相同属性和行为的对象的抽象』接口(Interface)『系统对外提供的所有服务』『接口类型』描述能够提供哪些服务,不包含服务的实现细节抽象(Abstract)『从特定角度出发,从已存在的一些事物中抽取所关注的特性,形成一个新的事物的思维过程』◆从问题领域的事物到软件模型中对象的抽象◆从对象到类的抽象◆从子类到父类的抽象基本概念.面向对象编程继承(Inheritance)『继承是子类使用父类的方法』Object-OrientedProgramming封装(Encapsulate)『隐藏对象的属性和实现细节,仅对外公开接口』多态(Polymorphism)『接口的多种不同的实现方式即为多态』3大特征.面向对象编程依赖(Dependency)『类之间的调用关系』Object-OrientedProgramming关联(Association)『类之间的特定对应关系』聚集(Aggregation)『整体与部分之间的关系』泛化(Generalization)『类之间的继承关系』实现(Realization)『类与接口之间的关系』5种关系.单一原则(SingleResponsibilityPrinciple)里氏替换原则(LiskovSubstitutionPrinciple)依赖倒转原则(DependenceInversionPrinciple)接口隔离原则(InterfaceSegregationPrinciple)迪米特法则(DemeterPrinciple)合成复用原则(CompositeReusePrinciple)总原则:开闭原则(OpenClosePrinciple)『对扩展开放,对修改关闭』为了使程序的扩展性好,易于维护和升级在程序需要进行拓展的时候,不能去修改原有代码,而是要扩展原有代码,实现一个热插拔效果设计模式六大原则6大原则.『应该有且仅有一个原因引起类的变更』类的复杂性降低可读性提高可维护性提高变更风险低.『所有引用基类的地方必须能透明地使用其子类的对象』子类必须完全实现父类的方法子类可以有自己的个性覆盖或实现父类的方法时输入参数可以被放大(子类输入参数的类型宽于父类)覆写或实现父类的方法时输出结果可以被缩小.『面向接口编程,依赖于抽象而不依赖于具体』高层模块不应该依赖底层模块,两者都应该依赖其抽象抽象不应该依赖细节细节应该依赖抽象.『接口尽量细化,同时接口中的方法尽量少』客户端不应该依赖它不需要的接口类间的依赖关系应该建立在最小的接口上·接口要尽量小·接口要高内聚·定制服务·接口设计是有限度的.『一个对象应该对其他对象有最少的了解』只和朋友交流朋友间也是有距离的不是自己的就是自己的谨慎使用Serializable(序列化).『尽量使用合成/聚合的方式,而不是使用继承』在面向对象设计中,可以通过两种方法在不同的环境中复用已有的设计和实现,即通过组合/聚合关系或通过继承,但首先应该考虑使用组合/聚合,组合/聚合可以使系统更加灵活,降低类与类之间的耦合度,一个类的变化对其他类造成的影响相对较少;其次才考虑继承,在使用继承时,需要严格遵循里氏代换原则,有效使用继承会有助于对问题的理解,降低复杂度,而滥用继承反而会增加系统构建和维护的难度以及系统的复杂度,因此需要慎重使用继承复用.设计模式概览23种模式创建型模式工厂方法模式抽象工厂模式单例模式建造者模式原型模式结构型模式适配器模式装饰器模式代理模式门面模式桥接模式组合模式享元模式行为型模式策略模式模板方法模式观察者模式迭代子模式责任链模式命令模式备忘录模式状态模式访问者模式中介者模式解释器模式.『确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例』.『定义一个用于创建对象的接口,让子类决定实例化哪一个类,使一个类的实例化延迟到其子类』一个抽象产品类,可以派生出多个具体产品类一个抽象工厂类,可以派生出多个具体工厂类每个具体工厂类通常只能创建一个具体产品类的实例.『为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类』多个抽象产品类,每个抽象产品类可以派生出多个具体产品类一个抽象工厂类,可以派生出多个具体工厂类每个具体工厂类可以创建多个具体产品类的实例.『用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象』.『将一个复杂对象的构建与它的示分离,使得同样的构建过程可创建不同的表示』.『使用共享对象可有效地支持大量的细粒度的对象』.『为其他对象提供一种代理以控制对这个对象的访问』.『要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层的接口,使得子系统更易于使用』.『将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作』.『将抽象和实现解耦,使得两者可以独立地变化』.『将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性』.『将对象组合成树形结构以表示“部分-整体”的层次结构,使得用户对单个对象和组合对象的使用具有一致性』+++.『定义一组算法,将每个算法都封装起来,并且使它们之间可以互换』.『当对象的状态改变时,同时改变其行为』.『定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤』.『定义对象间一种一对多的依赖关系,使得每当一个对象改变状态,则所有依赖于它的对象都会得到通知并被自动更新』.『它提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象内部细节』.『使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系,并沿着这条链传递该请求,直到有对象处理它为止』.『将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能』.『在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样以后就可将该对象恢复到原先保存的状态』.『封装一些作用于某种数据结构中的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作』.『用一个中介对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使其耦合松散,而且可以独立地改变它们之间的交互』.『给定一门语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子』.感谢亲观看此幻灯片,此部分内容来源于网络,如有侵权请及时联系我们删除,谢谢配合!
/
本文档为【设计模式学习分享ppt课件】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索