前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Context 模式小记

Context 模式小记

原创
作者头像
乐事
修改于 2020-05-12 06:14:01
修改于 2020-05-12 06:14:01
7130
举报
文章被收录于专栏:日常笔记日常笔记

开源项目中常有以 Context 命名的类,如 Spring 的 ApplicationContext、Dubbo 的 RpcContext、Netty 的 ChannelHandlerContext 等等。这些类的作用在于传递流程中所用到的各种数据,故称上下文。除了用来满足功能外,上下文类其实背后还体现了一种设计模式,这种设计模式可以帮助我们提升系统的可扩展性。

笔者曾遇到很多系统,业务流程中的某一步因业务原因需要增加功能,而这个功能所需的参数是原来所没有的。因此,实现这个功能的方法首先要增加新参数,而这个参数的生成可能是在很多步之前的一个地方。因此,这个新加了参数的方法调用链上直到参数提供者的每一个环节也都需要增加新参数。如此,一个需求很多地方都需要改动,扩展性可想而知。

Context 模式可以很好地解决这个问题。对于业务核心流程中所用到的主要和次要数据,我们都可以放在 Context 中。当再遇到上述需求时,通常只需直接使用 Context 中的数据即可。即便需要新增加数据,改动点会比不使用 Context 要少很多。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2个观点,带你重新理解设计模式
设计模式说白了就是传统经验的总结,它能让我们在合适的场景使用合适的模式,从而加快我们的编程速度,也能提高系统的扩展性、稳定性。这里我想就设计模式提出两个观点:
陈树义
2021/02/25
6800
2个观点,带你重新理解设计模式
如果策略模式的代码有段位,你的是白银?黄金?还是王者?
在软件开发中,我们经常会遇到一些场景,其中业务流程大致相同,但具体的操作步骤或算法却可能因为某些条件的不同而有所变化。为了应对这种情况,设计模式中的“策略模式”提供了一种优雅的解决方案。 本文将探讨策略模式的概念、应用场景、以及不同的实现方式,希望这个分享能节省大家的开发时间,这样可以有更多的时间来做更多想做的事,譬如陪陪家人。
烟雨平生
2024/04/23
1090
如果策略模式的代码有段位,你的是白银?黄金?还是王者?
小谈设计模式(28)—解释器模式
主要对目前市面上常见的23种设计模式进行逐一分析和总结,希望有兴趣的小伙伴们可以看一下,会持续更新的。希望各位可以监督我,我们一起学习进步,加油,各位。
学编程的小程
2023/10/19
1690
小谈设计模式(28)—解释器模式
向Spring框架学习设计模式
设计模式是大师们总结的编码范式,用于提升代码的扩展性以及优雅性。对于一个研发人员来说,能否写出一手让人点赞的代码,很大程度上取决于我们对于设计模式的落地使用。那么对于一些初学者来说,怎么才能以最快的方式来学习和理解设计模式呢?个人觉得比较好的方式是通过优秀的开源框架来进行学习,这些开源框架中大量使用了设计模式来进行功能扩展。本文主要分析下最常用的Spring框架中蕴含了哪些设计模式以及设计思想。
慕枫技术笔记
2023/03/20
2300
向Spring框架学习设计模式
Java设计模式之状态模式
状态模式(State Pattern)是一种行为设计模式,用于在对象的内部状态发生变化时改变其行为。该模式将状态封装成独立的类,并使得对象在不同状态下具有不同的行为。在Java中,状态模式是一种常见且有用的模式,可以有效地管理复杂的状态转换逻辑。本教程将深入介绍Java中的状态模式,包括其定义、结构、工作原理和实际应用。
刺槐儿
2024/01/31
7730
再一次实战策略模式,太好用了
之前做三方支付系统的时候经常用到策略模式,比如用户会选择不同的支付方式,不同的支付方式又有不同的实现方法或银行接口调用。
程序新视界
2021/03/20
8230
《大话设计模式》解读02-策略模式
本篇文章,来解读《大话设计模式》的第2章——策略模式。并通过Qt和C++代码实现实例代码的功能。
xxpcb
2024/06/16
1140
《大话设计模式》解读02-策略模式
23种设计模式(二)---策略设计模式
策略设计模式---透彻讲解 一. 什么是策略设计模式 设计模式有三种:创建型, 行为型, 结构型. 策略设计模式属于行为型. 为什么属于行为型呢? 来看看下面解释: 1.1 什么是策略呢? 什
用户7798898
2021/06/23
5890
23种设计模式(二)---策略设计模式
利用map实现策略模式
手上有一个工作,要做一个数据库类型转换工具,比如MySQL转ClickHouse,那么这个工具大部分的工作就是在做映射关系的比对。
有财君
2023/06/16
4761
利用map实现策略模式
策略模式详解
策略模式是一种行为型设计模式,它允许你在运行时选择算法或行为,而不是在编译时确定。通过将具体算法封装成独立的类,并通过一个统一的接口与客户端交互,可以实现算法的动态替换,同时避免了代码的重复和复杂条件语句。
码事漫谈
2024/12/20
1320
策略模式详解
万字详解常用设计模式
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它通过将请求的发送者和接收者解耦,使多个对象都有机会处理请求。在这个模式中,请求沿着一个处理链依次传递,直到有一个对象能够处理它为止。
wayn
2023/06/19
2100
万字详解常用设计模式
策略模式(Strategy)
策略模式是一种行为型模式,它能让你定义一系列算法,并将每种算法分别放入独立的类中,以使算法的对象能够相互替换。
兜兜转转
2023/03/29
4790
策略模式(Strategy)
《深入理解 C++策略模式的变体:编程灵活性的新维度》
在 C++编程的广阔领域中,设计模式起着至关重要的作用,它们为软件架构提供了可复用的解决方案。其中,策略模式是一种非常强大的设计模式,它允许算法的行为在运行时根据不同的策略进行改变。而策略模式的变体则进一步扩展了其灵活性和适用性,为程序员提供了更多的选择和可能性。
程序员阿伟
2024/12/09
1140
【愚公系列】2023年11月 二十三种设计模式(二十)-状态模式(State Pattern)
设计模式(Design Pattern)是软件开发领域的宝贵经验,是多人反复借鉴和广泛应用的代码设计指导。它们是一系列经过分类和归纳的代码组织方法,旨在实现可重用性、可维护性和可理解性。使用设计模式,我们能够编写高质量的代码,使其更易于他人理解,并提供了代码可靠性的保证。
愚公搬代码
2023/11/21
2150
状态机编程实例-面向对象的状态设计模式
本篇,继续介绍状态机编程的第三种方法:面向对象的设计模式。此方法从名字上看,用到了面向对象的思想,所以本篇的代码,需要以C++为基础,利用C++中“类”的特性,实现状态机中状态的管理。
xxpcb
2023/08/22
3770
状态机编程实例-面向对象的状态设计模式
精读《Spring 概念》
spring 是 Java 非常重要的框架,且蕴含了一系列设计模式,非常值得研究,本期就通过 Spring学习 这篇文章了解一下 spring。
黄子毅
2022/03/14
2480
业务代码中“if-else”太多被吐槽,使用状态模式优雅推动业务生命周期的流转
本文借助海外互金业务的借款流程展开。业务核心是借款的生命周期,相当于是电商中的订单一样。一笔借款的整个生命周期包含了提交,审批,确认,放款,还款。一笔借款的状态对应已上的操作,同样就很多了。如图是一笔借款的生命周期:
简熵
2023/05/06
3490
业务代码中“if-else”太多被吐槽,使用状态模式优雅推动业务生命周期的流转
使用状态模式和策略模式优化复杂的SSH登录交互
在日常开发中,我们经常会遇到需要与远程服务器进行交互的场景。其中,SSH登录是一个经典的例子。但当这种登录逻辑变得复杂时,如何优雅地管理不同状态与交互呢?在本文中,我们将使用Python的pexpect库作为实例,讨论如何通过结合状态模式和策略模式来解决这个问题。
运维开发王义杰
2023/09/19
2090
使用状态模式和策略模式优化复杂的SSH登录交互
【地铁上的设计模式】--行为型模式:策略模式
策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。这种模式通过定义一系列算法,并将每个算法封装到一个独立的类中,使得它们可以相互替换。通过这种方式,客户端可以根据需要选择要使用的算法,而不必与特定算法相关的实现细节耦合在一起。 策略模式适用于需要根据特定条件在多种算法之间进行切换的场景。它可以使代码更具可读性和可维护性,同时还能提高代码的灵活性和可扩展性。它还可以将算法的实现细节与客户端代码分离开来,从而使得算法可以更容易地进行修改和维护。 然而,使用策略模式可能会导致类的数量增加,从而增加代码的复杂性。此外,使用策略模式时,客户端必须了解不同策略之间的区别,以便能够选择正确的策略。因此,策略模式适用于复杂的场景,而不适用于简单的问题。
喵叔
2023/05/13
2360
工厂模式和策略模式的区别
工厂模式(Factory Pattern)和策略模式(Strategy Pattern)是两种常见的设计模式,在软件开发中有着不同的应用场景和功能。本文将从模式的定义、适用场景和它们的主要区别来探讨这两种模式的不同之处。
用户11293412
2024/10/09
3740
相关推荐
2个观点,带你重新理解设计模式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档