Linux 5.10 将解决 2038 年问题
|
变化带来的影响:如果不出意外对Jpa的使用方式不会产生变更,意味着其相对稳定,所以在当前阶段来看以上耦合是正常的也不会产生负面影响。但是在以下场景会让我们对高耦合有很明显的体感:大家觉得Jpa不好用,想替换为Mybatis该怎么做?代码中直接使用了继承JpaRepository的OrderDAO做数据操作,由于Jpa和Mybatis的写法不同,所以需要把使用到OrderDAO的地方都做替换:
结论:由于变更涉及到70多个类,同时事务管理器获取方式也需要修改,其带来的影响还是挺大的,不满足“低耦合”原则,可以使用“多态”原则重新设计。 案例2:订单对应的支付单应该由谁来创建?
拿饿了么交易系统举例,当前创建支付单的职责是由bos服务承担(面向app的一个后端服务)的,接下我们进行分析。 分层架构也是存在缺点的:按照分层架构定义消息消费应该在基础设施层,但是消息消费是为了执行某个业务逻辑,这样就需要依赖应用层 或 领域层,如果真的这样写就会出现循环依赖问题。通过依赖倒置可以解决依赖问题。 2 六(多)边形架构(洋葱圈架构)
六边形架构(Hexagonal Architecture),又称为端口和适配器架构风格,其中的“六”具体数字没有特殊的含义,仅仅表示一个“量级”的意思,六边形的定义只是方便更加形象的理解。 在微服务架构中,比较复杂的多态问题通常会选择增加一层去解决,如:支付网关、交付网关。 8 间接性 计算机学科中的大多数问题都可以通过增加一层解决,如果不行再加一层。反过来大多数性能问题都可以通过去掉一层来解决。 问题:为了避免两个或多个事物之间直接耦合,应该如何分配职责? 解决方案:将职责分配给中介对象,使其作为其他构建或服务之间的媒介,以避免他们之间的直接耦合。 优点:实现了构件之间的低耦合。 相关原则和模式:
注意:间接性通常用来支持防止变异。 四 架构模式 除了职责分配原则,还需要一些架构模式帮助我们更好的落地。 1 分层架构 在分布式系统中系统是独立存在的,可以单独变更而不对其他系统产生影响,但是随着业务整体复杂度的提升也带来了一些负面影响:由于整体被分解成大量独立的系统,随着复杂度提升系统之间的依赖关系会变的错综复杂,某个系统的变更会影响其他系统,同时也会产生意想不到的问题,效率也随之下降。这时就需要重新对分布式系统的逻辑架构做设计,以解决系统间的不良耦合和内聚,从而提效。
分层架构是非常实用和常见的方式,TCP/IP、HTTP、操作系统等等都运用了分层,分层的本质很简单:通过分离关注点,达到高内聚;通过向下依赖、拒绝循环依赖、使用接口,达到低耦合。 (编辑:四平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
