还剩26页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
,汇报人C ON TE NT SPARTONEPART TWO软件工程设计模式作用提高软件开发效定义一种通用的、应用广泛应用于软一种软件设计方法,率,降低维护成本,提可重用的软件设计方件开发、维护和测试高软件质量,增强软件法,用于解决特定问等领域,是软件工程用于解决特定问题可扩展性和可维护性题或实现特定功能领域的重要组成部分或实现特定功能创建型模式结构型模式行为型模式架构型模式用于创建对象,用于处理对象用于描述对象用于描述整个如工厂方法模之间的关系,之间的交互,系统的结构,式、抽象工厂如适配器模式、如观察者模式、如MVC模式、分模式等装饰器模式等命令模式等层模式等单一职责原则一个类只负迪米特法则最少知识原则,责一个功能一个对象应该对其他对象有最少的了解添加标题里氏替换原则子类可以替接口隔离原则接口应该小换父类添加标题而专添加标题添加标题添加标题单一职责原则一个类只负责一个功能添加标题添加标题开放封闭原则对扩展开放,添加标题对修改封闭组合复用原则优先使用组依赖倒置原则依赖于抽象,合,而不是继承而不是具体实现PART THREE工厂模式是一种工厂模式将创建工厂模式可以降工厂模式可以分创建型设计模式,对象的过程封装低客户端与具体为简单工厂模式、用于创建对象在一个工厂类中,实现类的耦合度,工厂方法模式和客户端只需要调提高系统的可维抽象工厂模式三用工厂类的方法护性和可扩展性种类型即可创建对象概念确保一个类应用场景需要全实现方式懒汉式、优点减少内存占只有一个实例,并局访问一个对象,饿汉式、双重检查用,提高性能,便提供一个全局访问如日志记录器、配锁等于管理资源点置管理器等目的将一个复主要角色应用场景当优点可以降杂对象的构建与Builder(建造创建复杂对象低系统的耦合它的表示分离,者)、时,需要多个度,提高系统使得同样的构建Director(导步骤,且步骤的灵活性和可过程可以创建不演)、Product的顺序可能不同的表示维护性(产品)同原型模式通过复制现有对象来原型模式适用于需要大量创创建新对象,而不是通过构造建相似对象的场景函数原型模式是一种创建型设计原型模式可以提高性能,减少内存占用,提高代码可读性和模式,用于创建新对象可维护性PART FOUR概念将一个类的接口转换成客户希优点提高了代码的可重用性,降望的另一个接口,使得原本由于接口低了耦合度,提高了系统的灵活性不兼容而不能一起工作的那些类可以和可扩展性一起工作添加标题添加标题添加标题添加标题应用场景当需要使两个不兼容的接缺点增加了系统的复杂性,可能口工作,或者需要创建一个可重用的会导致更多的错误和调试困难类,将不同的接口适配成客户希望的接口时目的提高系统的可扩展性应用场景适用于多个对象具有相同行为,但实现方式不同和可维护性的场景定义将抽象部分与实现部分优点降低耦合度,提高系分离,使它们可以独立变化统的灵活性和可扩展性概念将对象组合成树形结构,以表示“部分-整体”的层次结构特点可以方便地添加、删除和查询子节点应用场景适用于表示具有层次结构的对象,如文件管理系统、组织结构等实现方式通过定义抽象类和实现类,实现对子节点的管理和操作目的动态地为对象添加新的功能特点不改变原有对象的结构,而是通过添加新的对象来扩展功能应用场景需要动态地为对象添加新功能,但又不希望修改原有对象的结构时实现方式通过继承或组合的方式,将新功能添加到原有对象上PART FIVE定义定义一系列算法,封装每个算法,并使它们可以相互替换应用场景适用于需要根据不同场景选择不同算法或策略的场景优点降低了算法的耦合度,提高了算法的可维护性和可扩展性实现方式通过定义一个抽象策略类,实现不同的具体策略类,并在客户端代码中选择使用哪种策略定义观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听一个主题对象应用场景当需要实现一对多关系,一个对象的状态改变需要通知其他对象时,可以使用观察者模式优点观察者模式可以实现松耦合,降低系统的复杂性,提高系统的可维护性和可扩展性实现方式观察者模式通常包括主题()和观察者()两个角色,主题负责维护Subject Observer观察者列表,并通知观察者;观察者负责接收主题的通知,并做出相应的反应l定义定义一个操作中的算法骨架,将一些步骤延迟到子类中实现l优点提高代码复用性,降低维护成本l应用场景算法框架、框架设计、系统集成等l示例Java中的Abstract Class、C++中的Virtual Function等概念提供一种顺序访问集合对象中的各个元素,而又不暴露该对象的内部表示特点支持以不同的方式遍历一个聚合对象,简化了聚合对象的接口和实现应用场景当需要访问一个聚合对象的内容而无需暴露其内部表示时,可以使用迭代器模式实现方式通过实现Iterator接口,提供next和hasNext方法,实现对聚合对象的遍历PART SIX问题描述如何选择合适的设计模式解决方案根据具体需求、系统复杂度、团队能力等因素进行选择常见问题过度设计、设计模式滥用、设计模式选择不当等解决方案明确设计目标、遵循设计原则、参考设计模式最佳实践等过度使用设计模式过度使用设计模式过度使用设计模式过度使用设计模式可能导致团队沟通可能导致项目进度可能导致代码复杂可能导致性能下降,困难,难以理解代延迟,影响项目进度增加,难以维护影响系统性能码意图度设计模式的选择根据实际需求选设计模式的实现理解设计模式的择合适的设计模式实现原理和步骤添加标题添加标题添加标题添加标题设计模式的适用场景了解设计模设计模式的优化根据实际情况对式的适用场景和限制设计模式进行优化和改进设计模式的性能问题主要体现在过设计模式的性能问题还体现在设计度使用设计模式,导致代码复杂度模式的适用场景选择不当,导致性增加,运行效率降低能下降添加标题添加标题添加标题添加标题解决方案合理选择和使用设计模解决方案深入了解设计模式的适式,避免过度设计,提高代码可读用场景和优缺点,根据实际需求选性和可维护性择合适的设计模式汇报人。