
设计模式
文章平均质量分 80
yimeixiaolangzai
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
设计模式之传输对象模式
Transfer Object Pattern,又称为Value Object Pattern,是一种用于数据传输的设计模式。它的核心思想是将多个数据字段封装成一个传输对象(Transfer Object,也称为DTO:Data Transfer Object),并在客户端和服务器端之间传输该对象,从而减少远程调用次数和网络开销。在企业级应用中,特别是在J2EE架构中,客户端通常需要从服务器获取大量数据。如果每次只传递单个字段或少量数据,这将导致频繁的远程调用,增加系统的开销。原创 2024-08-15 15:00:00 · 927 阅读 · 0 评论 -
设计模式之业务代表模式
Business Delegate Pattern是一种结构型设计模式,属于J2EE设计模式家族。它的核心思想是通过引入一个业务代表(Business Delegate)来封装对业务服务的调用,客户端通过这个业务代表与后台服务交互,而无需直接处理服务调用的复杂性。简化客户端代码:客户端无需了解业务服务的复杂性,只需与业务代表交互。减少耦合:客户端与具体的业务服务实现解耦,如果服务接口或实现发生变化,客户端代码无需修改。增强可维护性:业务代表模式提供了一个集中化的接口,便于管理和维护业务服务的调用逻辑。原创 2024-08-15 09:55:17 · 461 阅读 · 0 评论 -
设计模式之Data Access Object
DAO模式是一种设计模式,它为数据库或其他持久化存储的访问提供了抽象接口。通过DAO模式,应用程序的业务逻辑与数据访问逻辑被分离开来,使得代码更加清晰、易于维护和测试。在DAO模式中,通常会创建一个数据访问对象,该对象负责与数据库交互,执行CRUD(Create、Read、Update、Delete)操作。业务逻辑层通过调用DAO对象的方法来访问数据库,而无需关心底层的数据库实现细节。原创 2024-08-14 14:21:34 · 1144 阅读 · 0 评论 -
设计模式之服务定位器模式
Service Locator Pattern 是一种设计模式,它提供了一个集中化的机制来获取应用程序中的服务实例。在该模式中,服务定位器(Service Locator)充当了一个注册表,负责管理和提供各种服务对象。这种模式通过延迟实例化(Lazy Instantiation)和依赖倒置(Dependency Inversion)来实现灵活的服务管理和获取。Service Locator Pattern 是一种用于管理和获取服务实例的强大设计模式,尤其适用于大型系统或复杂应用场景。原创 2024-08-14 14:16:50 · 735 阅读 · 0 评论 -
设计模式之空对象模式
在软件开发中,我们经常需要处理空值或未初始化的对象。当对象为空时,通常会导致空指针异常或者需要大量的空值检查代码。空对象模式(Null Object Pattern)通过引入一个特殊的对象,该对象表现得像普通对象但却什么也不做,从而消除了对空值的检查,使代码更加简洁和健壮。空对象模式的核心思想是用一个行为与正常对象一致的空对象来替代null,从而避免显式的空值检查。这个空对象能够响应调用,虽然它不执行任何操作,但它确保调用不会导致程序崩溃。原创 2024-08-13 22:13:40 · 756 阅读 · 0 评论 -
设计模式之访问者模式
访问者模式(Visitor Pattern)是一种行为设计模式,它允许在不改变现有对象结构的情况下,向这些对象添加新的功能。通过将操作与对象结构分离,访问者模式使得添加新功能变得更加灵活和方便。这在需要频繁对一组对象执行不同操作的场景中尤其有用。访问者模式通过将操作与数据结构分离,提供了一种灵活的方式来扩展对象的功能。在需要频繁对一组对象执行不同操作,且对象结构相对稳定的情况下,访问者模式是一个非常有用的工具。然而,设计师在使用这种模式时也需要谨慎考虑其复杂性以及对类职责的影响。原创 2024-08-13 22:09:29 · 923 阅读 · 0 评论 -
设计模式之模板方法
模板方法模式是一种行为型设计模式,它允许你在父类中定义一个算法的骨架,并将某些步骤的实现延迟到子类中。这样一来,子类可以重新定义算法的某些步骤,而不会改变算法的整体结构。首先,我们定义一个抽象类,它包含了处理文档的通用步骤(读取、处理、保存),并定义了一个模板方法。// 模板方法,定义了处理文档的步骤// 抽象方法,由子类实现模板方法模式通过将算法的固定部分抽象到父类中,并将变化的部分延迟到子类中实现,提供了一种标准化流程和代码复用的有效方式。原创 2024-08-09 14:30:00 · 986 阅读 · 0 评论 -
设计模式之策略模式
策略模式是一种行为设计模式,它定义了一系列算法,并将每种算法封装在一个独立的类中,使得算法可以在客户端之间相互替换。策略模式使得算法的变化不会影响使用算法的客户端,从而提高了代码的灵活性。首先,我们定义一个接口,该接口定义了一个pay方法,用于处理支付逻辑。策略模式通过将算法封装在独立的策略类中,使得程序可以在不修改客户端代码的情况下动态地切换算法。这种设计模式在提高代码的灵活性和可维护性方面具有显著的优势,适用于多个行为仅在算法上有所不同的场景。原创 2024-08-09 09:11:21 · 1079 阅读 · 0 评论 -
设计模式之状态模式
状态模式是一种行为设计模式,允许对象在内部状态改变时改变其行为。状态模式将与状态相关的行为分离到独立的状态类中,使得原始对象的逻辑简化,并能在不同状态下表现出不同的行为。原创 2024-08-08 11:45:48 · 562 阅读 · 0 评论 -
设计模式之观察者模式
Subject(主题)主题是被观察的对象,它维护了一个观察者列表,并提供方法以供观察者注册和取消注册。当主题的状态发生变化时,它会通知所有已注册的观察者。Observer(观察者)观察者是需要对主题的变化做出反应的对象。每个观察者都实现了一个更新接口,当主题状态变化时,主题会调用观察者的更新方法。原创 2024-08-08 11:45:14 · 605 阅读 · 0 评论 -
设计模式之备忘录模式
备忘录模式提供了一种方式,使得对象能保存其当前状态,并在未来某个时刻恢复到这个状态。这种模式通过使用三个关键组件实现:发起人(Originator)、备忘录(Memento)和看护者(Caretaker)。备忘录模式是一种非常有用的设计模式,它可以帮助我们有效地保存和恢复对象的状态,而不破坏对象的封装性。通过实践和应用备忘录模式,开发者可以更容易地实现如撤销功能这类需求,增强用户体验和系统的可靠性。在设计需要状态恢复功能的系统时,备忘录模式无疑是一个值得考虑的选择。原创 2024-08-07 15:45:00 · 689 阅读 · 0 评论 -
设计模式之中介者模式
中介者模式是一种行为设计模式,它允许我们将系统中多个组件之间的交互封装到一个中介对象中。这些组件不再直接通信,而是通过中介者进行交互,从而减少它们之间的依赖关系。通过使用中介者模式,软件开发人员可以更有效地管理和维护对象之间的交互。它不仅简化了通信机制,还帮助我们构建出更加模块化和可重用的代码。在设计大型系统时,合理利用中介者模式可以大大提升系统的可维护性和扩展性。原创 2024-08-07 10:14:32 · 520 阅读 · 0 评论 -
设计模式之迭代器模式
迭代器模式提供了一种访问聚合对象的元素而不暴露其内部结构的方法。这种模式是非常有用的,特别是当数据结构变得越来越复杂时。通过实现和使用迭代器,开发者可以更容易地管理和操作复杂的数据集合。原创 2024-08-06 16:15:00 · 464 阅读 · 0 评论 -
设计模式之解释器模式
解释器模式是一种用于解释和评估特定语言表达式的设计模式。该模式定义了一个语法表示,并建立一个解释器来解释这些语法。定义语言的语法规则。实现解释这些语法规则的解释器。通过将语法规则和解释器实现分离,我们可以更容易地扩展和维护语言。解释器模式是一种强大的设计模式,适用于需要解释和执行特定语言或表达式的场景。通过定义语法规则和实现相应的解释器,我们可以构建灵活且可扩展的系统。然而,在使用解释器模式时,需要权衡其带来的性能开销和复杂性问题。原创 2024-08-06 11:19:07 · 568 阅读 · 0 评论 -
设计模式之命令模式
命令模式是一种行为型设计模式。它将请求封装为一个对象,从而使你可以用不同的请求对客户进行参数化。此外,还支持对请求进行排队、记录日志以及实现撤销和恢复操作。原创 2024-08-05 22:47:24 · 986 阅读 · 0 评论 -
责任链模式:解耦职责,优化请求处理
责任链模式是一种行为型设计模式。它允许将请求沿着一个处理链传递,直到某个处理器处理它为止。这个链上的每个处理器都持有下一个处理器的引用,从而形成一个链条。当一个请求到达时,每个处理器都会检查自己是否能够处理该请求,如果不能,则将请求传递给链上的下一个处理器。原创 2024-08-05 22:40:16 · 528 阅读 · 0 评论 -
设计模式之享元模式
享元模式是一种结构型设计模式,它通过共享尽可能多的相似对象来有效地支持大量细粒度对象的重用。享元模式可以显著减少内存消耗,提高系统性能。首先,我们定义一个接口ChessPiece,它将作为所有棋子的基类。接下来,我们定义具体的棋子类,它实现ChessPiece接口,并存储共享的内部状态(棋子的颜色)。@Override然后,我们定义享元工厂类,它负责创建和管理棋子对象。} }Map;原创 2024-08-04 13:00:00 · 637 阅读 · 0 评论 -
设计模式之代理模式
代理模式是一种结构型设计模式,它提供了一个代理对象,以控制对其他对象的访问。代理对象在客户端和目标对象之间起到中介作用,可以控制、增强或管理对目标对象的访问。首先,我们定义一个接口Image,它将作为所有图像的基类。接下来,我们定义具体的图像类RealImage,它实现Image接口,表示被代理的真实图像对象。@Override然后,我们定义代理类ProxyImage,它实现Image接口,包含对RealImage的引用,控制对RealImage的访问。@Override。原创 2024-08-04 20:45:00 · 963 阅读 · 0 评论 -
设计模式之外观模式
外观模式是一种结构型设计模式,它为子系统中的一组接口提供一个统一的接口。此模式定义了一个高层接口,使得这一子系统更加容易使用。首先,我们定义家庭影院系统的各个子系统类。接下来,我们定义外观类,它将封装子系统的复杂操作,提供简化的接口。外观模式是一种强大的设计模式,适用于需要简化复杂系统使用的场景。它通过提供统一的接口,隐藏了系统的复杂性,减少了客户端与子系统之间的耦合,提高了系统的可维护性。通过合理使用外观模式,可以显著提高代码的易用性和可维护性。原创 2024-08-03 21:30:00 · 358 阅读 · 0 评论 -
设计模式之装饰者模式
装饰者模式是一种结构型设计模式,它允许你通过将对象放入包含行为的特殊封装对象中,来为原对象动态地添加功能。装饰者模式提供了比继承更灵活的扩展功能的方法。首先,我们定义一个接口Beverage,它将作为所有饮料的基类。接下来,我们定义几种具体的咖啡,它们实现Beverage接口。@Override@Override@Override@Override然后,我们定义一个抽象装饰类,它实现Beverage接口,并持有一个Beverage对象的引用。原创 2024-08-03 06:45:00 · 954 阅读 · 0 评论 -
设计模式之组合模式
组合模式是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得客户端对单个对象和组合对象的使用具有一致性。首先,我们定义一个抽象类,它将作为文件和目录的共同父类。接下来,我们定义表示文件的File类,它继承自。@Override然后,我们定义表示目录的Directory类,它也继承自,但可以包含子节点。} } }List;@Override。原创 2024-08-02 17:50:06 · 598 阅读 · 0 评论 -
设计模式之桥接模式
/ MediaPlayer 接口// AdvancedMediaPlayer 接口适配器模式是一种重要的结构型设计模式,通过引入适配器类,将一个类的接口转换成客户希望的另一个接口,从而使不兼容的类可以协同工作。本文详细介绍了适配器模式的基本原理、实现方法、应用场景及其优缺点,并通过具体示例演示了适配器模式的实际应用。原创 2024-08-02 14:22:51 · 724 阅读 · 0 评论 -
设计模式之适配器模式
/ MediaPlayer 接口// AdvancedMediaPlayer 接口适配器模式是一种重要的结构型设计模式,通过引入适配器类,将一个类的接口转换成客户希望的另一个接口,从而使不兼容的类可以协同工作。本文详细介绍了适配器模式的基本原理、实现方法、应用场景及其优缺点,并通过具体示例演示了适配器模式的实际应用。原创 2024-07-31 22:15:00 · 880 阅读 · 0 评论 -
设计模式之原型模式
原型模式的核心思想是通过复制现有对象来创建新对象,而不是通过实例化类来创建对象。这种方式可以避免耗时的对象创建过程,特别是在对象的创建过程中涉及到复杂的初始化操作或者资源消耗较大的情况下。原型模式是一种简单而又强大的设计模式,通过对象的复制来创建新对象,提高了对象创建的效率和灵活性。在实际应用中,原型模式可以帮助我们简化对象的创建过程,提高系统的性能和可维护性。原创 2024-07-31 17:22:33 · 490 阅读 · 0 评论 -
设计模式之建造者模式
建造者模式(Builder Pattern)是一种创建型设计模式,主要用于构建复杂对象的创建过程,使得对象的创建和表示分离。该模式将对象的构建过程封装在一个建造者类中,并通过指导者(Director)来控制建造过程,从而实现对象创建的灵活性和可扩展性。建造者模式通过将对象的构建过程封装在建造者类中,实现了对象创建和表示的分离。通过定义建造者接口和具体建造者类,及其控制建造过程的指导者,建造者模式为我们提供了一种灵活且可扩展的对象创建方式。建造者模式的实现涉及定义产品、建造者接口、具体建造者和指导者。原创 2024-07-30 18:00:00 · 463 阅读 · 0 评论 -
设计模式之抽象工厂模式
其中,抽象工厂模式(Abstract Factory Pattern)是创建型模式之一,用于创建一系列相关或依赖对象,而无需指定它们的具体类。抽象工厂模式通过提供创建一系列相关或相互依赖对象的接口,实现了客户端与具体类的解耦。通过定义抽象产品和抽象工厂接口,及其具体实现类,抽象工厂模式为我们提供了一种灵活且可扩展的对象创建方式。抽象工厂模式是一种提供接口,用于创建一系列相关或相互依赖对象的对象,而无需指定它们具体类的模式。该模式通过定义一个抽象工厂接口,并由具体工厂类实现,从而创建具体产品对象。原创 2024-07-30 09:34:28 · 421 阅读 · 0 评论 -
设计模式之工厂方法模式
工厂方法模式的核心思想是将对象的创建过程封装在一个方法中,使用这个方法来创建对象而不是直接使用new操作符。这不仅提高了代码的可扩展性和可维护性,还使代码更加符合开闭原则(对扩展开放,对修改关闭)。工厂方法模式通过将对象的创建过程封装在工厂方法中,实现了客户端代码与具体产品类的解耦,提高了代码的可扩展性和可维护性。在实际开发中,工厂方法模式广泛应用于各种需要动态创建对象的场景,是每个 Java 开发者需要掌握的重要设计模式之一。原创 2024-07-29 22:21:37 · 468 阅读 · 0 评论 -
设计模式之单例模式
单例模式的核心思想是控制实例的创建次数。在整个应用程序运行期间,某个类只能拥有一个实例。这种模式常用于需要全局唯一实例的场景,如数据库连接池、线程池、日志记录器等。单例模式作为一种简单而有效的设计模式,在 Java 编程中得到了广泛应用。通过控制实例的创建次数,单例模式帮助我们更好地管理资源,提高系统的性能和可维护性。原创 2024-07-29 22:17:04 · 385 阅读 · 0 评论