还剩25页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《架构的基本原则》ppt课件•引言contents•单一职责原则•开闭原则目录•里氏替换原则•接口隔离原则•依赖反转原则01引言什么是架构定义架构是软件系统的组织结构和基本布局,包括系统的主要组件、组件之间的关系以及如何将这些组件组合在一起目的通过定义架构,可以更好地理解和管理复杂的软件系统,确保系统的质量、可维护性和可扩展性架构的重要性提高软件质量降低维护成本良好的架构可以减少错误、提高系统的可靠清晰的架构有助于理解和维护系统,降低未性和性能来的维护成本提升开发效率增强可扩展性合理的架构可以优化开发流程,提高开发效灵活的架构能够适应未来的需求变化,使系率统更加易于扩展架构的基本原则概述模块化将系统划分为独立的、可复用的组件或模块,以提高可维护性和可重用性单一职责原则每个模块只负责一个功能或业务逻辑,以提高模块的内聚性和可维护性开闭原则软件实体应该对扩展开放,对修改封闭,即软件实体应该通过扩展来实现变化,而不是通过修改已有的代码来实现变化里氏替换原则在软件中,如果S是T的子类型,则程序中使用T类型的对象可以用S类型的对象来替换,而不会改变程序的行为02单一职责原则定义单一职责原则(Single ResponsibilityPrinciple,简称SRP)是软件工程中的一个重要原则,它指出一个类或模块应该只有一个职责,即只负责一项功能或业务逻辑单一职责原则的核心思想是将职责进行拆分和分离,使每个类或模块都只关注于某一方面的功能,避免出现职责过于复杂和混乱的情况遵循单一职责原则可以提高代码的可维护性和可读性,降低代码的耦合度,增强代码的可扩展性和可复用性为什么需要单一职责原则提高代码的可维护性提高代码的可读性遵循单一职责原则可以使每个类遵循单一职责原则可以使代码的或模块的职责更加清晰和明确,结构更加清晰和简单,便于阅读降低代码的耦合度,便于代码的和理解修改和维护提高代码的可复用性提高代码的可扩展性遵循单一职责原则可以使每个类遵循单一职责原则可以使每个类或模块都具备独立的功能和业务或模块都只关注于某一方面的功逻辑,便于在其他地方进行复用能,便于功能的扩展和添加如何实现单一职责原则对职责进行明确划分在设计和实现类或模块时,需要明确其职责,并将其拆分为独立的功能或业务逻辑减少不必要的耦合在编写代码时,应尽量减少类或模块之间的耦合度,使其独立运行遵循“高内聚、低耦合”原则在设计和实现类或模块时,应遵循“高内聚、低耦合”的原则,即尽量使每个类或模块内部的功能紧密相关,减少与其他类或模块的依赖关系03开闭原则定义开闭原则是指一个软件实体应该对扩展开放,对修改封闭这意味着软件实体应该在其扩展性方面提供抽象接口,以便在不影响现有代码的情况下添加新行为或新功能开闭原则是面向对象设计原则之一,它有助于提高软件系统的可维护性和可复用性为什么需要开闭原则减少代码修改提高软件可维护性增强软件可复用性遵循开闭原则可以减少对现有代遵循开闭原则可以使得软件系统遵循开闭原则可以使得软件系统码的修改,从而降低因修改代码更加模块化,各模块之间相对独更加灵活,方便添加新功能或行而引入错误的风险立,这有助于提高软件的可维护为,从而提高软件的可复用性性如何实现开闭原则抽象接口继承策略模式装饰器模式定义抽象接口,使得软件实通过继承实现软件实体的扩使用策略模式可以将算法封使用装饰器模式可以在运行体可以通过接口进行扩展或展,同时保持现有代码的封装在不同的对象中,使得算时动态地给对象添加新的行修改闭性法可以独立于客户端进行扩为或功能,而不需要修改现展或修改有代码04里氏替换原则定义里氏替换原则(Liskov SubstitutionPrinciple,LSP)是面向对象设计的基本原则之一,由美国计算机科学家Barbara Liskov提出它指出如果一个程序使用了一个基类的对象,那么使用该基类的子类的对象来替换这个基类的对象,程序的行为不会发生改变为什么需要里氏替换原则里氏替换原则有助于确保软件系统的可维护性和可扩01展性它鼓励设计出具有良好继承和多态性的类层次结构,02使得子类可以替换父类而不会破坏原有功能通过遵循里氏替换原则,可以降低代码耦合度,提高03代码的可重用性和可维护性如何实现里氏替换原则保持行为的一致性子类的方法应该实现与父类相应方法相同的功能,不应该引入新的副作用保持方法签名的一致性或改变原有行为在子类中实现与父类相同的方法签名,包括方法名、参数列表和返回类型使用继承和多态通过合理使用继承和多态,可以构建出符合里氏替换原则的类层次结构遵循单一职责原则每个类应该只有一个职责,如果一个类承担了过多的职责,可能会违反里氏替换原则05接口隔离原则定义•接口隔离原则是指客户端不应该被强制绑定到一个具有一组特定实现的服务上客户端只依赖它们真正需要的接口,并且每个接口只提供有限的功能为什么需要接口隔离原则010203提高内聚性降低耦合度增强可扩展性通过将接口拆分成更小、通过减少客户端和服务提当需要添加新功能时,只更具体的部分,每个部分供者之间的依赖关系,可需要修改或扩展特定的接可以更专注于单一功能,以降低耦合度,使得系统口,而不会影响到其他部从而提高内聚性更加灵活和可维护分的代码如何实现接口隔离原则010203使用适配器模式使用装饰器模式使用责任链模式将不兼容的接口转换成客户端需动态地给对象添加一些额外的职通过将多个处理对象串联成一个要的接口,实现客户端和服务提责,就像给一个对象“穿上一层处理链,实现对请求的发送者和供者之间的解耦装饰物”接收者进行解耦06依赖反转原则定义依赖反转原则(Dependency依赖反转原则的核心思想是将高层模Inversion Principle,DIP)是架构块和低层模块之间的直接依赖关系转设计的基本原则之一,它要求高层模化为通过抽象接口进行的间接依赖关块不依赖于低层模块,它们共同依赖系,从而实现解耦和灵活性于抽象;抽象不应依赖于细节,细节VS应依赖于抽象为什么需要依赖反转原则提高代码的可维护性和可复用性通过抽象接口,高层模块可以独立于低层模块进行开发和测试,降低了模块之间的耦合度,提高了代码的可维护性和可复用性增强系统扩展性和灵活性当低层模块发生变化时,只要抽象接口保持不变,高层模块就不需要修改,从而增强了系统的扩展性和灵活性降低系统复杂性和风险通过将直接依赖关系转化为间接依赖关系,可以降低系统复杂性和风险,提高系统的可维护性和可测试性如何实现依赖反转原则使用抽象接口依赖注入第三方框架和库抽象接口定义了高层模块和低层通过依赖注入的方式将低层模块使用一些第三方框架和库可以帮模块之间的契约,高层模块通过的实现类注入到高层模块中,而助实现依赖反转原则,例如抽象接口与低层模块进行交互,不是让高层模块直接创建低层模Spring框架中的IoC容器和AOP而不是直接依赖于具体的实现类块的实例这样可以降低高层模框架等这些框架和库提供了丰块对低层模块的直接依赖富的抽象接口和依赖注入功能,可以方便地实现依赖反转原则THANKS感谢观看。