博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设计原则:不要让有状态的类型绑架了无状态类型的生命周期
阅读量:6541 次
发布时间:2019-06-24

本文共 526 字,大约阅读时间需要 1 分钟。

情况是这样的

  • 第一步:你学会了面向接口编程。
  • 第二步:如何实例化接口呢?你学会了工厂。
  • 第三步:你学会了万能的工厂:IOC。
  • 第四步:IOC 容器都提倡依赖注入,因此你也学会了。
  • 第五步:无状态的类型的生命周期被有状态的类型给绑架了。

无状态的类型的生命周期被有状态的类型给绑架了

企业应用中,大多数的类型都是无状态的,如:Controller、ApplicationService、DomainService、Repository,只有个别的对象才有状态,如:UnitOfWork。因为依赖的问题,按照传统的依赖注入方式设计这些类型,生命周期设置只能设置为最短的那个(木桶定理),第一次发现这种要求,让我很不爽,当时没有敢于违背这种做法,直到读过一些 JSP 和 Spring 的书,才坚定了我的信心,因为:JSP 的 Servlet 是单例的,Spring 默认管理的实例也是单例的。

假如我们把无状态的对象设置为单例,有状态的对象该如何管理呢?答案很简单:

  • 如果还是保留无状态到有状态的关联,引入一层抽象。
  • 去掉无状态到有状态的关联,采用函数调用级别的依赖(服务定位器)。

好处

本该如此,看着更爽了,AOP 可以使用的更广泛了,因为其成本低了。

 

转载地址:http://rbsdo.baihongyu.com/

你可能感兴趣的文章
图解openssl实现私有CA
查看>>
BZOJ2213 : [Poi2011]Difference
查看>>
c++ Constructor FAQ 继续
查看>>
事务之六:spring 嵌套事务
查看>>
C#:路径
查看>>
iOS图片加载速度极限优化—FastImageCache解析
查看>>
PHP中的一些新特性
查看>>
OC基础--OC中的类方法和对象方法
查看>>
ubuntu samba服务器多用户配置【转】
查看>>
母线的种类与作用是什么(转)
查看>>
【Xamarin 挖墙脚系列:IOS 开发界面的3种方式】
查看>>
Atitit.工作流系统的本质是dsl 图形化的dsl 4gl
查看>>
I.MX6 Android USB Touch eGTouchA.ini文件存放
查看>>
4-5-创建索引表-串-第4章-《数据结构》课本源码-严蔚敏吴伟民版
查看>>
java 操作 RabbitMQ 发送、接受消息
查看>>
go run main.go undefined? golang main包那点事
查看>>
从零开始写一个npm包,一键生成react组件(偷懒==提高效率)
查看>>
Volley(二)—— 基本Request对象 & RequestQueue&请求取消
查看>>
2017中国系统架构师大会“盛装”来袭
查看>>
中国最强的人工智能学术会议来了
查看>>