设计模式
文章平均质量分 85
思静鱼
大道至简,行稳致远
展开
-
责任链模式(设计模式)
责任链模式通过将请求的发送者和接收者解耦,使得多个对象都有机会处理这个请求。请求沿着处理链传递,直到有一个对象处理它为止。这样,责任链模式提供了一种灵活的方式来处理请求。责任链模式的优缺点优点:降低耦合度。一个对象无需知道是哪个对象处理其请求。增强了系统的可扩展性。可以通过增加新的处理者来扩展系统。提供了一种灵活的方式来处理请求。缺点:不能保证每个请求一定会被处理。请求可能会传递到链的末端而没有处理者处理它。可能会影响性能,特别是当链条过长时,每个请求都需要从链头遍历到链尾。原创 2024-06-25 21:53:37 · 607 阅读 · 0 评论 -
享元模式(设计模式)
在这个示例中,我们通过享元模式有效地减少了棋子对象的创建次数。享元工厂负责创建和管理享元对象,并确保每种颜色的棋子只有一个实例,从而节省内存。棋子的颜色作为内部状态被共享,而棋子的坐标作为外部状态由客户端提供。享元模式的优缺点优点:减少对象的创建,降低内存消耗,提高系统性能。提高了系统的可扩展性。缺点:使系统更加复杂,需要额外的代码来管理内部状态和外部状态的分离。不适合内外状态较为复杂且不同的对象。适用场景享元模式适用于以下场景:系统中存在大量相似对象,导致内存开销大。原创 2024-06-25 21:40:57 · 666 阅读 · 0 评论 -
适配器模式(设计模式)
适配器模式主要在于将一个接口转变成另一个接口,它的目的是通过改变接口来达到重复使用的目的;适配器模式(Adapter Pattern)是一种结构型设计模式,它允许接口不兼容的对象能够相互合作。适配器模式通过将一个类的接口转换成客户端期望的另一个接口,使得原本因接口不兼容而无法一起工作的类可以在一起工作。适配器模式通常用于现有类的改造,而不修改其源代码。原创 2024-06-14 15:31:14 · 897 阅读 · 0 评论 -
代理模式(设计模式)
代理模式可以在不改变目标对象的情况下,提供额外的功能或控制。代理对象是目标对象的代表,其他需要与这个目标对象打交道的操作都是和这个代理对象在交涉。代理对象可以在客户端和目标对象之间起到中介的作用,这样起到了的作用和保护了目标对象的,同时也在一定程度上面减少了系统的耦合度。代理模式是一种非常实用的设计模式,适用于多种场景,通过代理对象来封装和控制对目标对象的访问,使得系统具备更好的扩展性和维护性。性能开销:由于代理模式需要额外的代理对象,因此会有一定的性能开销,特别是在频繁访问的情况下性能影响更加明显。原创 2024-06-14 14:58:23 · 1111 阅读 · 0 评论 -
工厂模式(设计模式)
抽象工厂模式提供一个接口,用于创建一系列相关或互相依赖的对象,而无需指定它们具体的类。抽象工厂(AbstractFactory):声明创建一组产品的方法,每个方法对应一个产品。具体工厂(ConcreteFactory):实现抽象工厂中的方法,生成具体的产品对象。抽象产品(AbstractProduct):为每种产品声明接口。具体产品(ConcreteProduct):实现抽象产品接口的具体类。假设我们有两个产品族:ProductA 和 ProductB,每个产品族有两个版本。原创 2024-06-14 14:09:15 · 875 阅读 · 0 评论 -
单例模式(设计模式)
单例模式:单例对象能保证在一个JVM中,该对象只有一个实例存在。保证被创建一次,节省系统开销解决的问题:保证一个类在内存中的对象唯一性。所谓单例,指的就是单实例,有且仅有一个类实例,这个单例不应该由人来控制,而应该由代码来限制,强制单例。单例有其独有的使用场景,一般是对于那些业务逻辑上限定不能多例只能单例的情况,例如:类似于计数器之类的存在,一般都需要使用一个实例来进行记录,若多例计数则会不准确。原创 2024-06-14 11:21:01 · 1005 阅读 · 0 评论 -
装饰者模式(设计模式)
装饰模式就是对一个类进行装饰,增强其方法行为,在装饰模式中,作为原来的这个类使用者还不应该感受到装饰前与装饰后有什么不同,否则就破坏了原有类的结构了,所以装饰器模式要做到对被装饰类的使用者透明,这是对装饰器模式的一个要求。总之装饰器设计模式就是对于原有功能的扩展不改变原有代码基础之上 额外实现增强。装饰者模式是一种结构型设计模式,它允许你在运行时为对象动态添加新的行为,同时不改变其原有的结构。这种模式是作为替代继承的一种方式而存在的。原创 2024-06-13 18:58:57 · 969 阅读 · 1 评论 -
策略模式(设计模式)
使用策略模式重构 if/else策略设计模式是一种允许在运行时选择算法的行为。这种模式● 定义了一系列算法● 封装每种算法● 使算法在该系列内可互换。下面是策略设计模式的架构,客户端将在其中与上下文进行通信。上下文将包含对策略对象的引用,这反映了另一个设计原则 “针对接口而非实现编程”。策略模式是指有一定行动内容的相对稳定的策略名称,策略模式作为一种软件设计模式,指对象有某个行为,但是在不同的场景中,该行为有不同的实现算法。原创 2024-06-13 14:57:52 · 1310 阅读 · 0 评论 -
Spring 框架中用到的设计模式
1.工厂模式:BeanFactory2.代理模式 AOP动态代理3.单例模式:spring中bean都是单例模式,bean默认都是单例的4.模板方法:postProcessorBeanFactory, onRefresh,initpropertyValue5.观察者模式:listener,event,multicast6.适配器模式:Adapter7.装饰者模式:BeanWrapper8.委托者模式:DispatcherServlet。原创 2024-05-09 09:30:07 · 755 阅读 · 0 评论