为什么很多架构用到类似spring的依赖注入和控制反转
1597 2021-07-10 08:18
很多人说为了高内聚、低耦合啊巴拉巴拉。但是没有讲到根上、没有勘破重点。
重点是。数据库的资源是有限的。
数据库就像中央集权。本来是一个数据仓库,但是因为所有的数据都从这里取得阅览,所有数据都要存储、所有操作痕迹都要留存在一个地方。那么这里虽然不是运算核心。但是这里变成了资源的聚集地。什么最重要、市场最重要。资源最重要。
有了最重要的东西。那么如何安排它对资源、信息的管控、进出、进销存、排队。就成了很多设计、策略、方案落地的修罗场。
如何平衡、如何确定优先权、如何让大家都满意。物以稀为贵。
你认为你是下达命令。顺应天道的要求都应该被满足。但是在中央集权的受理视角,你那都叫申请。对于你自己很重要。但是对于别人,可能就是一种鄙夷或嫉妒。
因此,最重要的两点:第一、连接上。第二、考虑处理死锁。死锁中又要有事务自身的时间,以及超时的时间的考量。
既然有连接,就有连接池(connection pool),资源池(Resource Pool)的一种。需要用到单例模式。
然后就是工厂模式产生所有DAO对象,然后通过控制反转IOC(Inversion of Control)像婚姻介绍所一样注册登记。使用的时候通过依赖注入DI(Dependency Injection)配对。
最终达到了程序模块的高内聚、低耦合。可重用性、移植性。拓展性极大提高。
全部评论