![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式
文章平均质量分 90
暗星涌动
我是陈冰安,Java 工程师,分享个人所得!
展开
-
Java 与设计模式(13):代理模式
代理模式是一种结构型设计模式,用于在访问对象时引入一个代理对象,以控制对实际对象的访问。代理对象充当了客户端和实际对象之间的中介,客户端通过代理对象间接地访问实际对象,从而可以在访问过程中添加额外的逻辑或控制。代理模式可以提供对实际对象的保护、延迟加载、缓存等功能,同时也可以实现远程代理、虚拟代理、安全代理等不同的应用场景。原创 2023-09-05 21:51:30 · 521 阅读 · 0 评论 -
Java 与设计模式(12):享元模式
享元模式是一种结构型设计模式,旨在有效地共享对象以减少内存使用和提高性能。该模式的核心思想是通过共享尽可能多的相似对象来减少内存占用。它将对象分为可共享的内部状态和不可共享的外部状态。内部状态是对象的固有属性,可以在多个对象之间共享,而外部状态是对象的上下文相关属性,每个对象都是独立的。通过共享内部状态,享元模式可以减少创建相似对象的数量,从而节省内存空间。当需要创建新对象时,可以首先检查是否已经存在具有相同内部状态的对象,如果存在,则可以直接返回共享的对象,而不是创建新的对象。原创 2023-08-21 20:52:18 · 817 阅读 · 1 评论 -
Java和设计模式(11):外观模式
外观模式(Facade Pattern)是一种结构型设计模式,它提供了一个统一的接口,用于访问子系统中的一组接口。外观模式隐藏了子系统的复杂性,为客户端提供了一个简单的接口,使得客户端更容易使用子系统。外观模式通过创建一个外观类(Facade),将客户端与子系统之间的交互转移到外观类中。外观类封装了子系统中的一组接口,并提供了一个简化的接口给客户端使用。客户端只需要通过外观类来访问子系统,不需要直接与子系统的各个组件进行交互。外观模式的主要目的是提供一个简化的接口,降低客户端与子系统之间的耦合度。原创 2023-07-10 21:39:52 · 621 阅读 · 0 评论 -
Java与设计模式(10):装饰器模式
装饰器模式是一种设计模式,它允许在不改变原有对象的结构的情况下,动态地将新功能添加到对象上。该模式通过创建一个包装器类,该类包含了原始对象的实例,并且可以在不影响原始对象的情况下,添加额外的行为或修改原有的行为。装饰器模式的核心思想是通过组合而非继承来实现功能的扩展。它可以在运行时动态地添加或移除对象的功能,而无需修改原始对象的代码。这种灵活性使得装饰器模式在需要对对象的行为进行动态修改的情况下非常有用。在装饰器模式中,通常会定义一个抽象的装饰器接口,该接口定义了要添加的功能的方法。原创 2023-07-04 20:59:13 · 949 阅读 · 0 评论 -
Java与设计模式(9):组合模式
组合模式是一种结构型设计模式,它允许我们将对象组合成树形结构以表示“整体-部分”的层次结构。组合模式使得客户端可以统一处理单个对象和组合对象,而无需关心它们之间的差异。在组合模式中,有两种主要的角色:组件(Component):定义了组合对象和叶子对象的公共接口,可以是抽象类或接口。组件角色提供了管理子节点的方法,如添加、移除、获取子节点等。叶子(Leaf):是组合的最小单位,表示树形结构中的叶子节点。叶子对象没有子节点,它实现了组件角色的接口。原创 2023-07-03 21:57:37 · 400 阅读 · 1 评论 -
Java与设计模式(8):桥接模式
桥接模式(Bridge Pattern)是一种软件设计模式,它用于将抽象部分与实现部分分离,使它们可以独立地变化。该模式通过将抽象类与实现类之间建立一个桥接(Bridge)来实现解耦,使得抽象部分和实现部分可以独立地进行扩展。在桥接模式中,抽象部分由一个抽象类或接口表示,它定义了一些抽象方法和属性,描述了抽象部分的行为。实现部分由一个具体类或接口表示,它实现了抽象部分定义的方法和属性,描述了实现部分的具体实现。通过桥接模式,我们可以在不修改抽象部分的情况下,独立地扩展实现部分。原创 2023-06-29 22:17:23 · 613 阅读 · 0 评论 -
Java与设计模式(7):适配器模式
适配器模式是一种结构型设计模式,它允许将一个类的接口转换为客户端所期望的另一个接口。适配器模式使得原本由于接口不兼容而无法一起工作的类能够协同工作。适配器模式通过引入一个适配器类来解决接口不兼容的问题。适配器类实现了客户端所期望的目标接口,并在内部持有一个适配者对象,将适配者对象的接口转换为目标接口。客户端通过调用适配器对象的方法来间接使用适配者对象的功能。适配器模式的主要优点是可以解决接口不兼容的问题,使得原本无法协同工作的类能够一起工作。它可以使得系统更加灵活,能够适应变化的需求。原创 2023-06-29 21:19:37 · 1126 阅读 · 0 评论 -
Java与设计模式(6):建造者模式
建造者模式(Builder Pattern)是一种创建型设计模式,它允许你逐步构造复杂对象。该模式将对象的构建过程与其表示分离,使得同样的构建过程可以创建不同的表示。建造者模式的核心思想是将一个复杂对象的构建过程分解为多个简单的步骤,通过一系列的步骤来逐步构建对象,最终产生一个完整的对象。这种分步构建的方式使得对象的构建过程更加灵活,同时可以隐藏对象的创建细节。建造者模式通常包含以下几个角色:产品(Product):表示最终构建的复杂对象。原创 2023-06-28 20:15:57 · 1163 阅读 · 0 评论 -
Java与设计模式(5):原型模式
原型模式是一种创建型设计模式,它允许通过复制现有对象来创建新对象,而无需通过实例化类来创建。原型模式通过克隆现有对象来创建新对象,从而避免了使用构造函数创建对象的开销。在原型模式中,原型对象是一个可被复制的对象,它定义了一个克隆方法,用于创建新的对象。通过克隆方法,原型对象可以生成一个与自身相同的新对象,新对象拥有与原型对象相同的属性和方法。原型模式的核心思想是通过复制现有对象来创建新对象,而不是通过实例化类来创建。原创 2023-06-27 22:49:54 · 613 阅读 · 0 评论 -
Java与设计模式(4):单例模式
单例模式是一种创建型设计模式,它确保一个类只有一个实例,并提供全局访问点来访问该实例。在单例模式中,类的构造函数被私有化,从而禁止外部直接实例化该类。通过一个静态方法或静态变量来控制类的实例化过程,并返回同一个实例。单例模式的特点包括:单一实例:单例模式确保一个类只有一个实例存在,无论在何处访问该类,都只能获得同一个实例。全局访问点:单例模式提供了一个全局访问点,使得其他类可以方便地访问该实例。延迟实例化:单例模式可以实现延迟实例化,即在第一次使用时才创建实例,提高了系统的性能和资源利用率。原创 2023-06-27 20:21:55 · 821 阅读 · 0 评论 -
Java与设计模式(3):抽象工厂模式
抽象工厂模式是一种创建型设计模式,它提供了一种将相关对象组合在一起创建的方式,而无需指定它们的具体类。在抽象工厂模式中,有一个抽象工厂接口,该接口定义了一组创建相关对象的方法。每个具体的工厂类都实现了这个接口,并负责创建一组相关的对象。抽象工厂模式的核心思想是将对象的创建与使用分离开来。客户端通过使用抽象工厂接口来创建对象,而不需要关心具体的对象是如何创建的。这样可以使客户端代码与具体对象的类解耦,提高代码的灵活性和可维护性。原创 2023-06-26 19:23:46 · 685 阅读 · 0 评论 -
Java与设计模式(2):工厂方法模式
工厂方法模式是一种创建型设计模式,它提供了一种将对象的创建委托给子类的方式。在工厂方法模式中,我们定义一个抽象的工厂类,该类负责定义创建对象的接口,但具体的对象创建由子类来实现。这样可以将对象的创建和使用解耦,使得系统更加灵活和可扩展。工厂方法模式的核心思想是将对象的创建延迟到子类中,通过子类的扩展来实现具体对象的创建。这样一来,我们可以根据需要新增具体产品类,而不需要修改已有的代码。同时,客户端只需要与抽象工厂类进行交互,无需关心具体的产品实现。原创 2023-06-25 22:03:14 · 925 阅读 · 0 评论 -
Java与设计模式(1):简单工厂模式
简单工厂模式(Simple Factory Pattern)是一种创建型设计模式,它提供了一种创建对象的方式,将对象的创建逻辑封装在一个工厂类中,而不是直接在客户端代码中进行实例化。在简单工厂模式中,有三个主要角色:工厂类(Factory Class):负责创建具体对象的工厂类。它通常包含一个静态方法,根据传入的参数或条件,决定创建并返回具体的对象实例。抽象产品类(Abstract Product Class):定义了具体产品类的通用接口或抽象方法。它可以是一个抽象类或接口,用于表示一类具体产品。原创 2023-06-25 20:28:19 · 1375 阅读 · 0 评论