如何提高 Java 代码的可重用性( 三 )


下面是这些原则的简要说明:

  • 单一职责原则(SRP):一个类应该仅承担一个职责或目标,并且完全封装这个职责 。这个原则促进_高内聚_,帮助保持类的专注和易于管理 。
  • 开放封闭原则(OCP):软件实体(如类、模块、函数等)应该对扩展开放 , 对修改封闭 。应设计代码以便在不更改现有代码的情况下增加新功能,从而减少更改的影响并促进代码重用 。
  • 里氏替换原则(LSP):超类的任何实例都应该能被其子类的实例替换,而不影响程序的正确性 。换言之 , 基类的任何实例都应该可以用其派生类的实例替换 , 保证程序行为的一致性 。
  • 接口隔离原则(ISP):客户端不应被迫依赖它们不需要的接口 。建议将大型接口拆分为更小且更具体的接口,使得客户端仅需依赖它们真正需要的接口 。这有助于松耦合和避免不必要的依赖 。
  • 依赖反转原则(DIP):高层模块不应依赖低层模块,两者都应依赖抽象 。鼓励使用抽象(接口或抽象类)来解耦高层模块和低层实现细节,促进基于抽象而非具体实现的依赖 。
遵循这些 SOLID 原则有助于开发者编写更模块化、可维护且易于扩展的代码 。这些原则有助于实现更易于理解、测试和修改的代码,从而形成更健壮、适应性更强的软件系统 。
合理运用设计模式设计模式是经验丰富的开发者在处理多种编码场景后总结出的最佳实践 。恰当地使用设计模式可以显著提升代码的复用性 。
掌握设计模式还能增强你阅读和理解代码的能力——这包括 JDK 中的代码 。当你能识别出其背后的设计模式时,代码会变得更加清晰 。
尽管设计模式有其用处,但并非每种模式适用于所有情况 , 因此使用时需谨慎 。仅仅因为我们了解某个模式,并不意味着就应该随意应用 。在不恰当的场景中使用设计模式可能会使代码变得更复杂、更难以维护 。然而 , 在合适的场合应用设计模式,可以使代码更加灵活和易于扩展 。
以下是面向对象编程中常见的设计模式简要概述:
创建型模式
  • 单例(Singleton):确保一个类仅有一个实例,并提供一个全局访问点 。
  • 工厂方法(Factory Method):定义一个用于创建对象的接口,但由子类决定实例化哪个类 。
  • 抽象工厂(Abstract Factory):提供一个接口,用于创建相关或依赖对象的族群 。
  • 建造者(Builder):分离复杂对象的构建和表示 。
  • 原型(Prototype):通过复制现有的实例来创建新实例 。
结构型模式
  • 适配器(Adapter):将一个类的接口转换成客户端所期望的另一种接口 。
  • 装饰器(Decorator):动态地为对象添加新的功能 。
  • 代理(Proxy):为另一个对象提供一个代理或占位符,以控制对这个对象的访问 。
  • 组合(Composite):将对象组合成树形结构,以表示部分整体的层次结构 。
  • 桥接(Bridge):将抽象部分与其实现部分分离,使它们可以独立变化 。
行为型模式