设计模式
文章平均质量分 76
小阳小朋友
这个作者很懒,什么都没留下…
展开
-
Spring设计模式之单例模式
单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点来获取该实例。在Spring框架中,单例模式是默认的Bean定义方式,意味着在Spring的IoC容器中,每个Bean都只有一个实例。单例模式是一种创建型设计模式,确保一个类只有一个实例,并提供一个全局访问点来获取该实例。在Spring框架中,单例模式是默认的Bean定义方式,通过使用注解或者在XML配置文件的配置方式,可以实现单例模式。单例模式具有资源独占、状态管理和性能优化等优点。原创 2024-02-02 18:00:49 · 940 阅读 · 0 评论 -
Spring设计模式之工厂方法
工厂方法是设计模式中的一种,用于创建对象,其核心思想是将对象的创建和使用分离,提供了一种更为灵活和可维护的代码组织方式。在Spring框架中,工厂方法模式被广泛使用,帮助我们更好地管理对象的创建和依赖关系。本文介绍了Spring设计模式中的工厂方法。工厂方法是设计模式中的一种,用于创建对象,其核心思想是将对象的创建和使用分离,提供了一种更为灵活和可维护的代码组织方式。在Spring框架中,工厂方法模式被广泛使用,帮助我们更好地管理对象的创建和依赖关系。原创 2024-02-02 17:54:38 · 817 阅读 · 0 评论 -
Spring设计模式之简单工厂模式
简单工厂模式是一种常见的软件设计模式,用于创建对象,而无需指定其具体类。在Spring框架中,简单工厂模式通常用于处理依赖注入,使得代码更加模块化和可维护。@Component@Autowired这里使用了@Component注解来标记工厂类,使其成为Spring的一个Bean。在工厂类中,我们通过注入一个Map来获取所有可用的UserService实现。通过工厂类的getUserService方法,我们可以根据名称获取对应的UserService实例。原创 2024-01-29 19:03:50 · 718 阅读 · 0 评论 -
设计模式之多线程分工模式--- 生产-消费者模式
Worker Thread模式类比的是工厂里车间工人的工作模式。但其实在现实世界,工厂里还有一种流水线的工作模式,类比到编程领域,就是生产者 - 消费者模式。生产者 - 消费者模式的核心是一个任务队列,生产者线程生产任务,并将任务添加到任务队列中,而消费者线程从任务队列中获取任务并执行。消息队列(MQ)可以被看作是一种生产者-消费者模式的实现。MQ充当了一个中间件的角色,用于解耦消息的生产者和消费者,使它们能够异步地进行通信。原创 2024-01-16 18:28:51 · 1398 阅读 · 0 评论 -
设计模式之多线程分工模式---Worker Thread模式
Worker Thread 模式需要注意死锁问题,提交的任务之间不要有依赖性。Worker Thread模式适用于需要并发处理多个任务提高系统吞吐量和效率的场景。通过合理地使用工作线程来处理任务,可以提高系统的并发性能和响应速度。原创 2024-01-15 14:32:34 · 1671 阅读 · 5 评论 -
设计模式之多线程分工模式--- Thread-Per-Message模式
Thread-Per-Message 模式需要注意线程的创建,销毁以及是否会导致OOM。Thread-Per-Message 模式—简单实用的分工方法Thread-Per-Message 模式就是为每个任务分配一个独立的线程,这是一种最简单的分工方法。Thread-Per-Message 模式作为一种最简单的分工方案,Java 中使用会存在性能缺陷。在Java中的线程是一个重量级的对象,创建成本很高,第一点创建线程比较耗时,第二点线程占用的内存也比大。所以为每个请求创建一个新的线程并。原创 2024-01-15 11:14:28 · 535 阅读 · 0 评论 -
设计模式之多线程版本的if------Balking模式
Balking是“退缩不前”的意思。如果现在不适合执行这个操作,或者没必要执行这个操作,就停止处理,直接返回。当流程的执行顺序依赖于某个共享变量的场景,可以归纳为多线程if模式。Balking模式常用于一个线程发现另一个线程已经做了某一件相同的事,那么本线程就无需再做了,直接结束返回。Balking模式是一种多个线程执行同一操作时可以考虑的模式;在线程2被阻塞或者执行其他操作时,线程1同样可以完成操作,而当线程2执行或者继续执行。原创 2024-01-13 16:21:30 · 1395 阅读 · 1 评论 -
设计模式之多线程版本的if------Guarded Suspension模式
在多线程开发中,常常为了提高应用程序的并发性,会将一个任务分解为多个子任务交给多个线程并行执行,而多个线程之间相互协作时,仍然会存在一个线程需要等待另外的线程完成后继续下一步操作。而Guarded Suspension模式可以帮助我们解决上述的等待问题。Guarded Suspension 模式是通过让线程等待来保护实例的安全性,即守护-挂起模式,也常被称作 Guarded Wait 模式、Spin Lock 模式(因为使用了 while 循环去等待),它还有一个更形象的非官方名字:多线程版本的 if。原创 2024-01-13 15:49:47 · 934 阅读 · 1 评论 -
设计模式之避免共享的设计模式 Thread-Specific Storage 模式
Thread-Specific Storage 模式原创 2024-01-12 17:49:18 · 615 阅读 · 0 评论 -
设计模式之避免共享的设计模式Copy-on-Write模式
不变性对象在创建后就不再修改,而是返回新的对象来代表修改后的状态。在这种场景下,COW可以用于处理返回新对象时的内部数据复制,确保并发访问的安全性。配置信息:在配置信息读取频繁,而修改操作较少时,可以使用COW来管理配置信息。当需要修改配置时,创建配置的副本进行修改,然后替换原始配置,确保读取配置信息的线程不会受到修改操作的干扰。缓存:在缓存对象上应用COW可以确保读操作始终访问到数据的一致性版本,而不受到写操作的影响。在数据变化时,先复制原始数据,然后对副本进行写操作,以确保数据备份的一致性。原创 2024-01-12 12:20:02 · 631 阅读 · 0 评论 -
设计模式之避免共享的设计模式Immutability(不变性)模式
Immutability模式原创 2024-01-11 16:02:36 · 635 阅读 · 0 评论 -
设计模式之并发特定场景下的设计模式 Two-phase Termination(两阶段终止)模式
Two-phase Termination(两阶段终止)模式原创 2024-01-11 15:10:17 · 1053 阅读 · 0 评论