
设计模式
文章平均质量分 70
minyunfei6
这个作者很懒,什么都没留下…
展开
-
枚举的高阶用法之枚举里写方法以及注入spring的bean
一般我们使用枚举都是用来定义一些常量。接着再写一下根据name查找对应枚举的方法。然后比如我们的业务场景是这样的:我们有一个OrderTypeService接口及其实现类。根据接口的方法名我们一眼就知道,processPc是用来处理PC订单的;processPhone是用来处理PHONE订单的。然后再实际调用这两个方法的地方就需要我们进行if-else的判断。这里的if-else判断的缺点是:代码扩展性很差,如果以后又增加了其它订单类型,我们还需要改这里的if-else逻辑。原创 2024-07-14 22:26:42 · 1710 阅读 · 2 评论 -
备忘录模式的学习与使用
当您需要在不破坏封装性的前提下保存和恢复对象的状态时,备忘录模式是一种有用的设计模式。备忘录模式允许您将对象的状态保存到备忘录对象中,并在需要时从备忘录中恢复状态。这种模式分离了状态的保存和恢复逻辑,使得对象的状态管理更加灵活和可扩展原创 2023-07-07 20:00:00 · 244 阅读 · 0 评论 -
中介者模式的学习与使用
中介者模式的核心思想是将对象之间的交互逻辑集中在中介者中,而不是让每个对象都直接与其他对象通信。当一个对象需要与其他对象进行通信时,它只需要通过中介者发送消息,而无需知道具体的目标对象。中介者负责将消息转发给合适的目标对象。原创 2023-07-05 20:00:00 · 218 阅读 · 0 评论 -
命令模式的学习与使用
当你想要将请求与实际执行操作的对象解耦时,可以使用命令模式。它将一个请求封装为一个对象,从而使你可以根据不同的请求将其参数化,将请求队列或日志请求,并支持可撤销的操作。原创 2023-07-04 20:00:00 · 199 阅读 · 0 评论 -
原型模式的学习与使用
在原型模式中,我们定义一个原型接口或抽象类,该接口或抽象类定义了克隆方法。具体的原型类实现克隆方法,并根据自身的属性创建新的对象。原创 2023-07-03 20:00:00 · 335 阅读 · 0 评论 -
外观模式的学习与使用
外观模式(Facade Pattern)是一种结构型设计模式,它通过提供一个统一的接口,封装了一个或多个复杂的子系统,并使其更易于使用。外观模式将系统的复杂性隐藏在一个外观类背后,客户端只需要与外观类进行交互,无需了解底层子系统的复杂实现细节。原创 2023-07-02 14:38:25 · 372 阅读 · 0 评论 -
桥接模式的学习与使用
桥接模式的核心思想是通过桥接接口(Bridge)将抽象部分和实现部分连接起来。抽象部分和实现部分可以独立地变化,而不会相互影响。这使得系统更加灵活,可以根据需求动态地选择和切换实现部分,同时也方便了系统的扩展和维护。原创 2023-06-30 18:13:53 · 366 阅读 · 0 评论 -
享元模式的学习与使用
享元模式的核心思想是将对象的状态分为内部状态和外部状态,并共享内部状态以减少对象的数量。这样可以节省内存空间,并提高系统的性能。原创 2023-06-24 16:34:15 · 245 阅读 · 0 评论 -
单例模式的学习与使用
当我们需要确保一个类只有一个实例并且全局可访问时,可以使用单例模式。单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供一个全局访问点以便于其他对象可以使用该实例。选择哪种实现方式取决于具体的需求和场景。在多线程环境下,需要考虑线程安全性和性能。此外,要注意避免单例模式的滥用,因为它可能导致代码的耦合性和可测试性降低。设计一个日志管理器类,要求该类只能有一个实例,并且可以通过全局访问点获取该实例。该日志管理器可以记录系统中的日志信息。原创 2023-06-09 11:09:13 · 790 阅读 · 0 评论 -
状态模式的学习和使用
状态模式通过将对象的状态封装在不同的状态类中,以实现状态之间的切换和行为的变化。这样,对象可以根据当前状态来选择不同的行为,而无需使用复杂的条件语句原创 2023-06-08 23:17:42 · 144 阅读 · 0 评论 -
java设计模式之抽象工厂模式
    ***设计模式系列***抽象工厂模式    提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。抽象工厂方法模式的四个角色1、抽象工厂:它声明了一组用于创建一族产品的方法,每一个方法对一个一种产品。2、具体工厂:它实现了在抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。3、抽象产品:原创 2020-12-27 16:31:45 · 167 阅读 · 0 评论 -
java设计模式之工厂方法模式
设计模式系列工厂方法模式 工厂方法模式提供一个抽象工厂接口来声明抽象工厂方法,而由其子类来具体实现工厂方法,创建具体的产品对象。 工厂方法模式的四个角色 1、抽象产品角色:它是定义产品的接口,是工厂方法模式所创建的对象的超类型,也就是产品对象的公共父类。 &原创 2020-11-29 19:00:03 · 338 阅读 · 0 评论 -
观察者模式的学习与使用
观察者模式的核心思想是:松耦合,将观察者与被观察者解耦,使得它们之间的关系不再是紧密耦合的。这样一来,当被观察者的状态发生变化时,不需要直接调用观察者的方法,而只需要通知(间接调用)观察者即可。:Subject 维护一个观察者列表,并提供注册和删除观察者的方法。Subject 还提供了一个通知方法,当它的状态发生变化时,会通知所有的观察者。使用观察者模式实现这样的功能:假设有一个气象站,每隔一段时间会更新一次气象数据,现在需要实现一个程序,能够实时地获取气象数据并进行显示。原创 2023-05-30 21:39:58 · 141 阅读 · 0 评论 -
建造者模式的学习与使用以及和抽象工厂模式的区别
建造者模式关心的是一个产品的属性构建过程;抽象工厂模式关心的是一组产品的生产。原创 2023-06-01 11:47:10 · 588 阅读 · 0 评论 -
代理模式的学习与使用
jdk动态代理JDK 动态代理基于接口实现。它使用 java.lang.reflect.Proxy 类和java.lang.reflect.InvocationHandler 接口来创建代理对象。首先,定义一个实现 InvocationHandler 接口的代理类,它负责处理代理对象的方法调用。然后,使用 Proxy.newProxyInstance(ClassLoader, Class[], InvocationHandler) 方法创建代理对象,指定类加载器、要代理的接口列表和代理类的实例。原创 2023-06-01 21:53:49 · 959 阅读 · 0 评论 -
适配器模式的学习与使用
当我们需要将一个类的接口转换成另一个客户端所期望的接口时,适配器模式(Adapter Pattern)可以派上用场。它允许不兼容的接口之间能够协同工作。原创 2023-06-03 11:00:00 · 276 阅读 · 0 评论 -
责任链模式的学习与使用
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它允许你将请求沿着处理链进行传递,直到有一个处理者能够处理该请求。责任链模式将请求的发送者和接收者解耦,使多个对象都有机会处理请求原创 2023-06-08 11:30:18 · 586 阅读 · 0 评论 -
模板方法设计模式的学习和使用
模板方法设计模式的优势在于提供了一种代码复用的方式,可以避免在每个子类中重复编写相同的代码,同时允许子类在需要的地方提供自定义的实现。这样,模板方法模式实现了算法的核心部分集中管理,同时保留了灵活性。原创 2023-06-07 23:09:55 · 661 阅读 · 0 评论 -
装饰者模式学习与使用以及优缺点
*** @Description: 具体装饰者// 这里可以对初始的颜值sign进行处理 return " 颜值是:" + sign;} }/*** @Description: 具体装饰者// 这里可以对初始的sign进行处理 return " 身高为" + sign;} }/**3. @Description: 具体装饰者// 这里可以对初始的体重sign进行处理 return " 体重为" + sign;} }原创 2023-05-14 13:14:50 · 122 阅读 · 0 评论 -
策略模式的学习和使用以及和简单工厂模式的区别
**3. @Description: 客户端// 生产女人 PersonContext personWomanContext = new PersonContext(new PersonWomanStrategy());// 生产男人 PersonContext personManContext = new PersonContext(new PersonManStrategy());} }原创 2023-05-14 10:39:31 · 108 阅读 · 0 评论 -
java设计模式之简单工厂模式
设计模式系列简单工厂模式解释:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的类的实例通常都具有共同的父类。简单工厂模式一般都含有以下三个角色:1.Factory(工厂角色):该模式的核心,负责实现创建所有产品实例的内部逻辑。2.Product(抽象产品角色):它是工厂类创建的所有产品对象的父类。3.ConcreteProduct(具体产品角色):它是简单工厂模式的创建目标,所有被创建的对象都充当这个角色的某个具体类的实例。下面我将以一个例子来说明一下:使用简单工厂模式来模拟女原创 2020-11-22 17:36:31 · 274 阅读 · 0 评论