- 博客(29)
- 收藏
- 关注
原创 设计模式之 解释器模式
解释器模式是一种设计模式,它定义了一个语言的语法,并通过递归的方式解释和执行该语言中的表达式。Context(上下文):保存解释器的全局信息或变量等上下文信息,供不同的解释器对象访问和使用。AbstractExpression(抽象表达式):抽象类或接口,用于声明解释方法。通常定义一个方法。TerminalExpression(终结符表达式):实现接口的类,表示语言中的基本元素(如数字、变量、常量等),负责解释具体的元素。NonterminalExpression(非终结符表达式):同样继承自。
2024-11-24 21:03:27
1133
1
原创 设计模式之 备忘录模式
备忘录模式是一种行为型设计模式,它允许你在不暴露对象实现细节的情况下,捕获和保存对象的内部状态。之后,可以通过保存的状态将对象恢复到原先的状态。备忘录模式的核心思想是“在不暴露对象的内部实现的情况下,保存对象的状态,并可以随时恢复这个状态”。简单来说,备忘录模式帮助我们在某一时刻保存对象的状态,以便以后恢复。
2024-11-24 17:50:33
1120
原创 设计模式之 访问者模式
访问者模式(Visitor Pattern)是一种行为型设计模式,它允许你在不改变类的前提下,增加新的操作。换句话说,访问者模式使得你能够定义一个新的操作,作用于一个包含不同对象的对象结构上,而无需修改这些对象的类。该模式通过将操作封装在访问者类中,分离了算法与数据结构的结合,使得代码更加灵活和扩展性更强。访问者模式的核心思想是“通过一个访问者对象对一组对象(元素)进行操作,避免了直接修改这些对象的类。
2024-11-23 22:03:38
1002
原创 设计模式之 迭代器模式
迭代器模式(Iterator Pattern)是一种行为型设计模式,它提供了一种顺序访问聚合对象元素的方法,而又不暴露该对象的内部表示。简单来说,迭代器模式的目的是将集合对象(例如列表、数组等)的遍历过程与集合的内部结构解耦,使得访问这些元素的方式更加灵活和通用。迭代器模式提供了一种统一的方式来遍历不同的数据集合,而不需要关心集合的具体实现。这样,客户端代码不需要知道集合的具体类型或如何存储其元素,只需要使用迭代器进行遍历。迭代器模式通常由以下几个角色组成:迭代器模式的工作原理非常简单:通过使用一个迭代器对
2024-11-23 20:08:05
1069
原创 设计模式之 中介者模式
Override}else {@OverrideSystem.out.println("租客"+name+"收到消息"+message);@Override@OverrideSystem.out.println("房子主人"+name +"收到消息"+message);@Override。
2024-11-23 17:55:35
756
原创 设计模式之 观察者模式
在观察者模式中,主题对象(Subject)保持对多个观察者对象(Observer)的引用,并在自身状态改变时通知它们。观察者对象通过订阅主题对象来接收通知,而无需主动去查询主题对象的状态。主题和观察者之间通过一个简单的接口进行通信,使得它们之间的耦合度降低。
2024-11-22 23:35:08
1196
原创 设计模式之 状态模式
状态模式允许一个对象在其内部状态改变时,改变其行为。也就是说,状态模式的核心思想是,状态的改变不仅仅是数据的变化,还会影响到行为的变化。每个状态类都有自己的行为实现,而当对象的状态发生变化时,它会切换到一个新的状态对象,这个新的状态对象将根据当前的状态执行相应的行为。
2024-11-22 22:16:42
1100
原创 设计模式之 责任链模式
Override@OverrideSystem.out.println("小组长批准"+request+"天假");}else {@Override@OverrideSystem.out.println("经理批准"+request+"天假");}else {@Overridethrow new RuntimeException("总经理是最高职位");@OverrideSystem.out.println("总经理批准"+request+"天假");
2024-11-22 20:47:56
1005
原创 设计模式之 命令模式
命令模式(Command Pattern)是之一,它将请求(或命令)封装成一个对象,从而使用户能够将请求发送者与请求接收者解耦。通过命令模式,调用操作的对象与执行操作的对象不直接关联,命令对象作为一个中介,传递请求和执行的责任,使得用户可以通过简单的调用接口来执行复杂的行为。
2024-11-22 18:27:50
1313
原创 设计模式之 策略模式
策略模式(Strategy Pattern)是中的一种,它定义了一系列算法(或策略),并将每一个算法封装起来,使它们可以互换。策略模式允许客户端在运行时选择使用不同的算法,而不需要修改客户端的代码。这种模式让不同的算法可以独立变化、易于扩展,并且能够避免使用多重条件语句(如if-else)来选择特定的算法或操作。
2024-11-22 14:55:31
777
原创 设计模式之 模板方法模式
模板方法模式是行为型设计模式的一种。它定义了一个算法的骨架,并将某些步骤的实现延迟到子类中。模板方法模式允许子类在不改变算法结构的情况下重新定义算法的某些特定步骤。模板方法模式的核心在于:模板方法模式的核心是一个“模板方法”,它通常是一个在父类中定义的具体方法,里面包含了步骤的调用,而步骤的具体实现交给子类。下面是模板方法模式的基本结构:抽象类(Abstract Class):具体类(Concrete Class):模板方法(Template Method):假设我们正在设计一个做菜的程序。做菜的步骤大致是
2024-11-22 14:23:46
2212
原创 设计模式之 享元模式
享元模式(Flyweight Pattern)是一种结构型设计模式,用于减少系统中对象的数量,从而节省内存和提升性能。它通过共享相同的对象来避免重复创建类似的对象。该模式尤其适用于对象数量庞大、且重复内容较多的场景。:将对象的状态划分为(Intrinsic State)和(Extrinsic State),内蕴状态是可以共享的部分,而外蕴状态则由客户端管理并在需要时动态传递。
2024-11-21 23:45:16
697
原创 设计模式之 组合模式
组合模式(Composite Pattern)是一种结构型设计模式,它通过将对象组合成树形结构来表示“部分-整体”层次。组合模式允许客户端统一处理单个对象和对象集合。换句话说,组合模式让客户端可以像处理单个对象一样处理对象的集合,使得树形结构的操作更加简单,提升了系统的灵活性。在组合模式中,既可以将单个对象(叶子节点)与容器对象(树枝节点)进行统一处理,树枝节点本身也可以拥有其他树枝节点或叶子节点,从而形成一个递归的结构。组合模式通过递归的方式使得对整体对象的操作能够像对单个对象的操作一样。
2024-11-21 18:44:57
1091
原创 设计模式之 外观模式
外观模式(Facade Pattern)是一种结构型设计模式,其主要目的是为复杂的子系统提供一个统一的接口,使得客户端能够通过这个简单的接口访问子系统的功能,而无需了解子系统的具体细节。它将客户端与多个复杂的子系统之间的交互封装起来,使得系统更加简洁和易用。通过外观模式,客户端只需要通过外观类提供的接口进行交互,而不必了解内部复杂的实现和组件,减少了客户端的复杂度。
2024-11-21 15:06:00
1058
原创 设计模式之 桥接模式
OverrideSystem.out.println("画一个"+color.getColor()+"的圆");@OverrideSystem.out.println("画一个"+color.getColor()+"的椭圆");
2024-11-21 14:19:19
2008
原创 设计模式之 装饰者模式
装饰者模式(Decorator Pattern)是一种结构型设计模式,它允许通过给对象添加额外的功能,而不需要修改对象的结构。装饰者模式通过创建一个装饰类来封装原始对象,并为原始对象提供附加的功能。这种模式使得我们能够在运行时扩展对象的功能,避免了继承的局限性。装饰者模式的核心思想是。通过使用装饰者,可以使得对象的功能变得更加灵活,可以根据需要动态地添加功能。
2024-11-21 11:52:31
889
原创 设计模式之 适配器模式
适配器模式(Adapter Pattern)是一种结构型设计模式,它允许将一个类的接口转换成客户端所期望的另一个接口。通过使用适配器模式,原本由于接口不兼容的类可以进行协作。简单来说,适配器模式就是将不兼容的接口连接起来,使得客户端能够与之交互而不需要修改原有代码。在现实世界中,这就像是一个电压适配器,它将不同电压的插头转化为标准插座的电压和插头,以便设备能够正常使用。
2024-11-20 21:37:14
1297
原创 设计模式之 代理模式
代理模式是一种结构型设计模式,允许通过一个代理对象来控制对另一个对象的访问。代理对象通常会执行一些额外的操作,例如权限检查、延迟初始化、日志记录等。它在客户端和目标对象之间充当中介,能够为客户端提供更加灵活和安全的访问方式。
2024-11-20 18:40:15
798
原创 设计模式之建造者模式
建造者模式(Builder Pattern)是一种创建型设计模式,旨在将一个复杂对象的构建过程与其表示分离。它允许通过一步步地构造对象,而不需要暴露对象的内部细节和构建过程。通常,这个模式适用于创建对象时需要多个步骤,而这些步骤是独立于对象类型的。
2024-11-20 15:13:16
1270
原创 设计模式之 原型模式
原型模式是一种创建型设计模式,它通过复制现有的实例来创建新的对象,而不是通过传统的构造方法。通过这个模式,可以避免重复的初始化操作,尤其适用于当创建一个对象需要耗费较大资源或时间时。原型模式的核心思想是“通过克隆现有对象来创建新的对象”,这样既能减少对象创建的开销,又能保证新对象的创建更加灵活。原型模式的定义为:使用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。具体来说,它的核心是通过实现一个 方法,使得我们可以复制(克隆)对象的状态而无需重新构造。这个方法通常会返回对象的一个副本,而不是重
2024-11-19 23:08:24
796
原创 设计模式之 工厂模式
工厂模式(Factory Pattern)是一种创建对象的设计模式,属于 创建型模式(Creational Pattern)之一。其主要目的是通过定义一个工厂方法来创建对象,而不是直接通过 new 关键字实例化对象,从而将对象的创建过程与使用过程分离。这种方式能够减少代码中的耦合度,提高代码的可维护性、可扩展性,并符合面向对象设计的 单一职责原则和开放封闭原则。工厂模式的核心思想是让子类决定实例化哪一个类,而父类提供创建对象的接口。它将对象的创建推迟到子类中执行。
2024-11-19 21:38:43
2161
原创 设计模式之 单例设计模式
单例设计模式(Singleton Design Pattern) 是软件开发中最常用的设计模式之一,属于 创建型设计模式。单例模式确保一个类在整个应用程序生命周期中只有一个实例,并提供一个全局访问点。
2024-11-18 19:10:13
1123
原创 设计模式之 类与类之间的关系
类与类之间的关系是面向对象设计中的一个重要部分,理解和正确使用这些关系可以使得软件系统的结构更加清晰、易于维护和扩展。常见的类与类之间的关系包括继承、实现、关联、聚合、组合等。每种关系都有不同的含义和使用场景。
2024-11-17 20:18:00
1113
原创 spring api文档之 Swagger
Swagger 是一个广泛使用的开源工具集,用于设计、构建、记录和消费 RESTful APIs(应用程序编程接口)。Swagger 的核心组件包括 Swagger UI、Swagger Editor、Swagger Codegen 和 Swagger Specification,它们为开发者提供了一整套用于创建和维护 API 的工具。
2024-11-14 15:34:42
372
原创 velocity模板引擎
Velocity 是一个开源的模板引擎,主要用于 Java 应用程序中生成文本输出,如 HTML、XML、SQL 等。它通过将模板和数据结合,允许开发者以灵活和可重用的方式生成输出
2024-11-14 14:53:00
1085
原创 lombok
Lombok 是一个 Java 库,它通过注解简化了 Java 类的开发,减少了样板代码(boilerplate code)的书写。Lombok 的核心理念是通过注解在编译时自动生成代码,从而减少开发工作量,提升代码的可读性和维护性。以下是 Lombok 的详细功能、常用注解和配置方法。
2024-11-14 11:09:23
942
原创 spring事务管理之 @Transactional
作用:该注解用于启用 Spring 的声明式事务管理。它使得开发者无需编写底层的事务管理代码,而是通过简单的注解挂钩事务相关功能。使用场景:常用于处理数据库操作时,确保多个操作作为一个事务一起成功或一起失败,例如在创建订单时同时更新库存和记录交易信息。
2024-11-13 23:33:28
341
原创 spring配置之 @Configuration
定义注解用于指示某个类提供 Spring 配置。该类可以包含一个或多个带有@Bean注解的方法,这些方法的返回值会被注册为 Spring 应用上下文中的 beans。作用: Spring 会扫描带有此注解的类,并执行其中定义的@Bean方法,从而创建相应的对象。这使您的类在应用启动时成为一个配置源。在您的其他 Spring 组件中,您可以通过依赖注入来使用这些配置的 beans。
2024-11-13 22:19:15
142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人