还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
设计模式设计模式是软件开发中可重用的解决方案,帮助开发者设计优雅、可扩展的代码设计模式提供通用的解决方案,用于处理常见设计问题设计模式概述定义目的12设计模式是一套经过验证的、可复用的解决方案,用于解决设计模式旨在提高代码的可重用性、可维护性和可扩展性,软件设计中常见的难题同时降低代码的复杂度种类价值34设计模式分为三大类创建型、结构型和行为型,每类都包设计模式可以帮助开发者快速构建高质量的软件系统,并提含多种不同的模式高团队协作效率设计模式的历史发展早期萌芽设计模式的诞生世纪年代,面向对象编程兴起,设计模式的概念开始出现年,《设计模式可复用面向对象软件的基础》出版,标志20701994着设计模式的正式诞生一些优秀的设计方案被总结和传播,如模式该书将种常见的设计模式进行了分类和总结,成为设计模式领“Gang ofFour”23域的经典著作面向对象设计原则封装抽象隐藏内部实现细节,仅对外暴露提取共性,忽略差异,定义通用必要接口,提高代码可维护性和接口或抽象类,增强代码灵活性可重用性继承多态实现代码复用,子类继承父类属不同对象对相同消息做出不同反性和方法,扩展功能,减少代码应,提高代码灵活性,增强系统冗余可扩展性单一职责原则专注单一功能每个类或模块只负责一项特定的功能降低耦合度专注单一职责,减少代码依赖,提升模块独立性代码可读性提高代码可读性和可维护性,方便代码修改和测试开闭原则扩展性可维护性复用性设计模式在软件设计中至关重要,因为它可设计模式可以有效地解决软件开发中一些常设计模式可以提高代码的复用性,避免重复以提高代码的可维护性和扩展性,同时降低见的问题,比如如何设计可扩展、可维护的造轮子,提高开发效率,降低开发成本软件开发的成本代码,如何降低代码的复杂度等等里氏替换原则子类可替换父类子类对象可以替换父类对象,不影响程序的正常运行保证了代码的扩展性,并降低了维护成本依赖倒置原则高层模块抽象
11.
22.不应该依赖于低层模块,两者不应该依赖于细节,细节应该都应该依赖于抽象依赖于抽象降低耦合度易于测试
33.
44.通过引入抽象,可以降低模块依赖倒置原则可以使代码更容之间的耦合度,提高代码的可易测试,因为可以更容易地模维护性和可扩展性拟依赖接口分离原则接口分离原则旨在避免过度依赖,提高灵活性和可维护性ISP通过将臃肿的接口拆分为更小的、特定于角色的接口,可以减少不必要的依赖关系,并降低代码的耦合度六大设计模式创建型创建型模式灵活创建封装复杂性主要关注对象的创建过程,提供一种创建对让创建过程变得更加灵活,避免直接使用隐藏创建对象的细节,将复杂性封装在创建象的最佳实践操作符创建对象模式中new单例模式定义应用场景保证一个类仅有一个实例,并提供一个访问它的全局访问点配置文件读取,数据库连接,线程池,日志记录器,缓存等等..优点缺点节省内存违反开闭原则••避免重复创建单例模式复杂••全局访问单元测试困难••工厂方法模式定义结构应用场景定义一个用于创建对象的接口,让子类决定包含抽象工厂角色、具体工厂角色、抽象产适用于需要创建不同类型的对象,但具体类实例化哪个类工厂方法使一个类的实例化品角色和具体产品角色型在运行时才能确定延迟到子类抽象工厂模式提供创建产品族对象的接口抽象工厂模式提供一个创建相关或依赖对象的接口例如,创建一个包含按钮、文本框等元素的GUI组件家族,或创建一个包含数据库连接和日志记录对象的系统服务家族不同的具体工厂每个具体工厂实现抽象工厂接口,提供用于创建特定产品族的具体方法例如,一个具体工厂可以创建Windows风格的GUI组件,另一个工厂可以创建Mac风格的组件产品族概念抽象工厂模式关注于创建一组相关的对象,而不是单个对象这些对象通常具有相同的主题或用途,并相互依赖例如,创建一个包含按钮和文本框的GUI组件族建造者模式逐步构建灵活配置建造者模式将复杂对象的构建过通过不同的建造者类实现不同的程分解成多个步骤,通过不同的构建逻辑,可以根据不同的需求构建方法逐步完成对象的创建创建不同的对象,实现灵活的配置分离构建过程将对象的构建过程与对象的表示分离,使构建过程变得更加清晰易懂原型模式原型模式是一种创建型设计模式,它允许通过复制现有对象创建新的对象它通过克隆(或复制)一个现有对象(称为原型)来创建新的对象,而不是每次都从头开始创建六大设计模式结构型桥接模式适配器模式装饰器模式组合模式桥接模式将抽象部分与实现部适配器模式将一个类的接口转装饰器模式在不改变原类的情组合模式将对象组合成树形结分分离,提高了代码的可扩展换成客户期望的另一个接口,况下,动态地为对象添加额外构,允许客户端统一地处理单性和可维护性方便不同接口之间的协作的职责个对象或多个对象适配器模式兼容性代码重用
11.
22.将现有类接口转换为目标接口避免修改现有代码,只需创建,使原本不兼容的类能够协同适配器类进行连接,提高代码工作复用率解耦
33.将客户代码与具体实现类解耦,降低代码耦合度,提高代码可维护性桥接模式应用场景桥接模式常用于需要将抽象部分与实现部分分离的场景,例如•当需要在运行时选择不同的实现方式时•当需要扩展抽象类而不修改其代码时•当需要将抽象部分与实现部分独立开发和维护时桥接模式桥接模式将抽象部分与实现部分分离,使得两者可以独立变化它通过接口或抽象类来定义抽象部分,而具体实现则由不同的具体类来提供装饰器模式动态地添加职责灵活组合功能装饰器模式为对象添加新功能,不改变原有对象结构通过组合不同的装饰器,可以实现各种功能组合装饰器可以在运行时动态地为对象添加职责,灵活地扩展功能装饰器模式使功能扩展更加灵活,方便维护和修改组合模式树状结构统一接口灵活组合组合模式使用树形结构表示对象之间的层次组合模式提供统一的接口,方便操作单个对组合模式允许灵活地添加、删除或修改子节关系象或整个树形结构点,满足不同场景的需求外观模式简化接口降低耦合外观模式提供一个统一的接口,外观模式将客户程序与子系统解隐藏系统内部的复杂性,简化客耦,客户程序无需了解子系统的户程序对系统的调用具体细节,提高系统的可维护性提高复用性外观模式可以将多个子系统组合成一个统一的接口,方便其他系统进行复用享元模式享元模式是一种结构型设计模式,它通过共享对象来减少内存的使用和提高性能享元模式将对象的内部状态和外部状态分离,共享对象的内部状态,并通过不同的外部状态来区分不同的对象六大设计模式行为型定义分类应用行为型模式主要关注对象之间的交互和行为型模式可以进一步分为类行为模式行为型模式在软件开发中应用广泛,例职责分配,以及算法和流程的封装和对象行为模式,它们分别通过类的继如,可以用于实现策略切换、事件处理承和对象的组合来实现不同的行为模式、状态管理等功能策略模式定义策略模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换上下文策略模式包含一个上下文类,它持有算法的引用策略策略模式定义了具体的算法,并由上下文类使用观察者模式定义应用场景优点观察者模式是一种行为型模式,它定义了一例如,天气预报系统中,多个用户订阅天气松散耦合•种一对多的依赖关系,让多个观察者对象同信息,当天气变化时,所有订阅的用户都会扩展性强•时监听某一个主题对象收到通知支持广播通信•状态模式定义优点状态模式允许一个对象在它的内将状态逻辑封装在独立的类中,部状态改变时改变它的行为提高代码可读性和可维护性应用例如,一个游戏角色可以有不同的状态,例如行走、攻击、防御等备忘录模式保存状态恢复状态
11.
22.将对象状态保存到备忘录对象利用备忘录对象恢复到先前保,以便在将来恢复到该状态存的状态,从而实现状态的撤销和重做保护数据应用场景
33.
44.通过备忘录模式,可以保护原适合需要记录和恢复对象状态始对象的状态,避免被意外修的场景,例如文本编辑器中的改撤销重做功能、游戏中的存档/和读档功能等迭代器模式定义优点应用场景示例提供一种方法顺序访问一个聚简化遍历复杂数据结构,增强需要遍历不同类型的集合,实中的接口,可Java Iterator合对象中的各个元素,而又不代码可扩展性现多态遍历用于遍历、等集合List Set暴露该对象的内部表示命令模式命令模式是一种行为型设计模式它将请求封装成对象,以便使用不同的请求、队列或日志记录请求,以及支持撤销操作总结与思考不断学习实践应用设计模式是软件设计的宝贵经验,需要不断学在实际项目中应用设计模式,加深理解并提高习和积累编码效率团队协作灵活运用设计模式促进团队成员之间更好的沟通与合作设计模式并非万能药,需要根据具体场景灵活运用。
个人认证
优秀文档
获得点赞 0