Java 涉及的设计模式一共有 23 种,按照功能分为三类:

  1. 创建型模式:包括工厂模式、抽象工厂模式、单例模式、建造者模式和原型模式。当需要对对象的创建进行更好的抽象和封装时,可以考虑使用创建型模式。比如,当系统中的对象创建过程较为复杂,希望封装这些复杂的创建过程,或者需要对对象的创建进行更好的扩展和维护时,可以考虑使用创建型模式。
  2. 结构型模式:包括适配器模式、桥接模式、组合模式、装饰模式、外观模式、享元模式和代理模式。当需要处理对象之间的关系,例如对象之间的结构以及它们如何组合成更大的结构,可以考虑使用结构型模式。比如,当系统中存在多个对象之间的关系,而这些关系又比较复杂,需要灵活地组合对象以适应变化时,可以考虑使用结构型模式。
  3. 行为型模式:包括责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式和访问者模式。当需要处理对象之间的通信,以及如何实现对象之间的协作时,可以考虑使用行为型模式。比如,当系统中存在多个对象之间的通信和协作,而这些对象的行为又希望能够灵活地变化和扩展时,可以考虑使用行为型模式。

总之,设计模式并非万能之箭,应该根据具体的业务场景和需求来选择合适的设计模式,以提高代码的可读性、可维护性和可扩展性。