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

Context 模式小记

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

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

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

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

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档