当前位置: 首页 > 后端技术 > Java

JAVA23种设计模式详解

时间:2023-04-01 16:03:44 Java

单例设计模式这类设计模式是一种创建型模式,它提供了创建对象的最佳方式。此模式涉及一个类,该类负责创建自己的对象,同时确保只创建一个对象。此类提供了一种直接访问其唯一对象的方法,而无需实例化此类的对象。工厂模式简单工厂模式封装了创建对象的过程,可以直接通过参数获取对象。将对象创建与业务逻辑层分离,避免日后修改客户代码。如果要实现一个新的产品,可以直接修改工厂类,无需修改原有代码,减少了客户代码修改的可能性,更容易扩展。工厂方法模式定义了一个用于创建对象的接口,并让子类决定实例化哪个产品类对象。工厂方法将产品类的实例化推迟到其工厂子类。抽象工厂模式是一种模式结构,它为访问类提供了创建一组相关或相互依赖的对象的接口,访问类可以在不指定所需产品的具体类的情况下获得同一家族的不同级别的产品。抽象工厂模式是工厂方法模式的升级版。工厂方法模式只生产一级产品,而抽象工厂模式可以生产多级产品。原型模式使用一个已经创建的实例作为原型,通过复制原型对象创建一个与原型对象相同的新对象。建造者模式将复杂对象的构造和表示分离,使得同一个构造过程可以创建不同的表示。组件的构建(由Builder负责)和装配(由Director负责)是分开的。因此可以构建复杂的对象。这种模式适用于对象的构造过程比较复杂的情况。由于某种原因,代理模式需要为对象提供代理以控制对该对象的访问。这时,访问对象不适合或不能直接引用目标对象,代理对象充当访问对象和目标对象之间的中介。Java中的代理根据代理类的生成时间分为静态代理和动态代理。静态代理类是在编译时生成的,而动态代理类是在Java运行时动态生成的。动态代理有两种类型:JDK代理和CGLib代理。适配器模式将一个类的接口转换成客户想要的另一个接口,使那些因接口不兼容而不能一起工作的类可以一起工作。装饰者模式是一种在不改变现有对象结构的情况下,动态地为对象增加一些职责(即增加其外部功能)的模式。桥接模式将抽象与实现分开,允许它们独立变化。它通过用组合关系代替继承关系来实现,从而降低抽象和实现两个可变维度的耦合度。门面模式,也称为门面模式,是一种通过为多个复杂的子系统提供一致的接口,使这些子系统更易于访问的模式。这种模式对外有统一的接口,外部应用程序无需关心内部子系统的具体细节,将大大降低应用程序的复杂度,提高程序的可维护性。Facade模式是“迪米特定律”的典型应用。复合模式,也称为部分-整体模式,用于将一组相似的对象视为单个对象。Composite模式根据树结构组合对象,用于表示部分和整个层次结构。这种类型的设计模式是一种结构模式,它创建对象组的树结构。享元模式使用共享技术有效支持大量个体对象的复用。它通过共享现有对象大大减少了需要创建的对象数量,避免了大量相似对象的开销,从而提高了系统资源的利用率。模板方法模式在面向对象编程的过程中,程序员经常会遇到这样的情况:在设计系统时,知道了算法所需要的关键步骤,并确定了这些步骤的执行顺序,但是有些步骤的具体步骤实现未知,或者某些步骤的实现与具体环境有关。在一个操作中定义算法骨架,将算法的一些步骤推迟到子类中,使得子类可以在不改变算法结构的情况下重新定义算法的一些具体步骤。策略模式该模式定义了一系列的算法,并对每个算法进行封装,使它们可以相互替换,算法的改变不会影响使用该算法的客户。策略模式属于对象行为模式。通过对算法的封装,将使用算法的职责与算法的实现职责分离开来,委托给不同的对象来管理这些算法。命令模式将请求封装为对象,将发出请求的责任与执行请求的责任分开。这样,两者通过命令对象进行通信,方便了命令对象的存储、调用、添加和管理。ChainofResponsibility模式,也称为责任链模式,为了防止请求发送者与多个请求处理器耦合,所有请求处理器通过前一个对象记住下一个对象的引用连接成一个链,当当一个请求发生时,它可以沿着链传递,直到一个对象处理它。对于有状态对象,状态模式将复杂的“判断逻辑”提取到不同的状态对象中,允许状态对象在其内部状态发生变化时改变其行为。观察者模式也称为发布-订阅(Publish/Subscribe)模式,它定义了一对多的依赖关系,允许多个观察者对象同时监听一个主题对象。主题对象将状态更改通知所有观察者对象,使它们能够自动更新自己。中介模式也称为中介模式。它定义了一个中介角色来封装一系列对象之间的交互,使得原有对象之间的耦合松散,它们之间的交互可以独立改变。迭代器模式提供了一个对象,可以在不暴露聚合对象内部表示的情况下顺序访问聚合对象中的一系列数据。访问者模式封装了一些作用于某个数据结构中每个元素的操作,它可以在不改变数据结构的情况下定义作用于这些元素的新操作。备忘录模式也称为快照模式。它捕获对象的内部状态,并在不破坏封装的情况下将状态保存在对象外部,以便以后需要时可以将对象恢复到原来保存的状态。选择器模式采用一种语言,定义其语法表示,并定义一个解释器,该解释器使用标记来解释该语言中的句子。关键词:java培训