软件解耦

说起软件的解耦必然需要谈论耦合度,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。

做事情要想事半功倍,就要高处着眼,触摸到事情的脉络。当今流行着各种眼花缭乱的软件框架,不管是struts,还是spring,hibernate,还是.net,还是各种前端UI框架,其设计的核心思想是:
尽可能减少代码耦合,如果发现代码耦合,就要采取解耦技术;
解耦方法有但不限于如下几种:
(a)采用现有设计模式实现解耦,如事件驱动模式、观察者模式、责任链模式等都可以达到解耦的目的;
(b)采用面向接口的方式编程,而不是用直接的类型引用,除非在最小内聚单元内部。但使用该方法解耦需要注意不要滥用接口。
(c)高内聚,往往会带来一定程度的低耦合度。高内聚决定了内部自行依赖,对外只提供必须的接口或消息对象,那么由此即可达成较低的耦合度。

时间: 2025-01-07 01:59:52

软件解耦的相关文章

多年收集的一些稀有软件2

QQ:365543212 Fuel Economy Calculator v1.1 B.001(汽车工程软件,用于预测车辆燃油消耗率,是目前此类软件中最为全面的,能接收从最新的发动机分析程序Engine Analyzer自动发送来的强大的游标和发动机规格) Psat v5.1 1CD ProScan.v5.1 1CD PowerFlow v3.3p3a for Linux 1CD(Exa公司的汽车外气流计算软件) Rotating Inertia Calculator v1.1 A.000(一款

java分层

一.为什么要分层. 以前的我们,写代码的时候,都在main()方法中,出现了错误,就慢慢调试,这样浪费了我们很长的时间,而我们程序员的时间是非常宝贵的 但是当我们使用分层架构的时候,就可以清晰明确的知道错误出在哪里,或者在公司中,基本都是使用分层架构的,因为那样可以分离我们程序员的 关注,更为简洁. 二.分层带来了哪些好处. 其实带来了很多好处,首先,方便维护和分离关注点,就不谈了. 1.便于更改或替换. 先说说便于替换或者更新,我现在用的数据库是SQLServer数据库,如果我需要 将数据库更

ServerSAN解析(一):vVNX专业存储设备虚拟化

vVNX专业存储设备虚拟化 EMC在2014 World大会上宣布了Project Liberty计划,主要内容是将专业存储设备实现软硬件解耦.虚拟化部署.目前EMC已经发布vVNX虚拟化社区版本并提供免费下载链接.vVNX是将一款基于业界领先的 VNX 阵列实现虚拟化(vVNX),用户可以享有VNX 提供丰富的数据服务.易管理能和丰富的用户体验,同时vVNX让开发和测试系统的部署变得灵活.简单.用户可以在使用VNX存储专业存储服务的同时,也降低采购和软硬件成本. Project Liberty

Java反射机制的学习

Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法). 也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制.你会嗤之以鼻地告诉我,Java反射机制没啥用.或许在J2EE.J2SE等平台,Java反射机制没啥用(具体我也不了解,不多做评论),但是在Android应用开发中,该

华为项目Tree canvas画图 数据2

"name": "Structure","children": [{"description_en": "Indicates the overall dissemination cost of the software. It is the average dependency degree among software units based on the statistical values of the dir

华为项目Tree canvas画图 数据3

"name": "ARCHATTRIBUTE","children": [{"description_en": "The code duplication rate should not exceed 5%. A higher duplication rate means that the software is redundant and software maintenance is difficult.&quo

[转载] Java反射机制的学习

本文转载自: http://www.blogjava.net/zh-weir/archive/2011/03/26/347063.html Java反射机制是Java语言被视为准动态语言的关键性质.Java反射机制的核心就是允许在运行时通过Java Reflection APIs来取得已知名字的class类的相关信息,动态地生成此类,并调用其方法或修改其域(甚至是本身声明为private的域或方法). 也许你使用Java已经很长时间了,可是几乎不会用到Java反射机制.你会嗤之以鼻地告诉我,Ja

有容云AppSoar容器健康检查与调度策略

近两年来,微服务架构和基于容器的虚拟化技术以迅雷不及掩耳之势席卷了整个软件开发社区,微服务与Docker的结合更被视为一种"颠覆".在与容器结合使用后,微服务架构的优点得到了进一步的放大:微服务鼓励软件开发者将整个软件解耦为较小的功能模块,并且这些功能能够应对外界的故障:而容器进一步对这种解耦性进行了扩展,它能够将软件从底层的硬件中分离出来. 这种方式所产生的结果是:应用程序能够更快地进行创建,并且更易于维护,同时又能够得到更高的质量,从而促使越来越多的产业应用容器化.如eBay.Am

2017下一代数据中心网络研究报告zz

http://dy.163.com/v2/article/detail/CDG9CD7G05179LAH.html 2月2日,SDxCentral发布了2017下一代数据中心研究报告(2017 Next Gen Data Center Networking Report).这份报告系统介绍了下一代数据中心网络的发展趋势.关键功能.典型案例.行业标准以及热门产品. 下一代数据中心演进的四大驱动力 1.业务竞争驱动:企业提升自身竞争力,对敏捷性.差异化和成本节约提出了新要求 Increased Co