软件解耦
2015-03-17 21:20
176 查看
现在在学习AngularJS,其中讲到了逻辑解耦能够大大的提高代码的可调性。不明白解耦是什么东西,于是百度了一下。
说起软件的解耦必然需要谈论耦合度,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。
做事情要想事半功倍,就要高处着眼,触摸到事情的脉络。当今流行着各种眼花缭乱的软件框架,不管是struts,还是spring,hibernate,还是.net,还是各种前端UI框架,其设计的核心思想是:
尽可能减少代码耦合,如果发现代码耦合,就要采取解耦技术;
解耦方法有但不限有如下几种:
(a)采用现有设计模式实现解耦,如事件驱动模式、观察者模式、责任链模式等都可以达到解耦的目的;
(b)采用面向接口的方式编程,而不是用直接的类型引用,除非在最小内聚单元内部。但使用该方法解耦需要注意不要滥用接口。
(c)高内聚,往往会带来一定程度的低耦合度。高内聚决定了内部自行依赖,对外只提供必须的接口或消息对象,那么由此即可达成较低的耦合度。)
说起软件的解耦必然需要谈论耦合度,降低耦合度即可以理解为解耦,模块间有依赖关系必然存在耦合,理论上的绝对零耦合是做不到的,但可以通过一些现有的方法将耦合度降至最低。
做事情要想事半功倍,就要高处着眼,触摸到事情的脉络。当今流行着各种眼花缭乱的软件框架,不管是struts,还是spring,hibernate,还是.net,还是各种前端UI框架,其设计的核心思想是:
尽可能减少代码耦合,如果发现代码耦合,就要采取解耦技术;
解耦方法有但不限有如下几种:
(a)采用现有设计模式实现解耦,如事件驱动模式、观察者模式、责任链模式等都可以达到解耦的目的;
(b)采用面向接口的方式编程,而不是用直接的类型引用,除非在最小内聚单元内部。但使用该方法解耦需要注意不要滥用接口。
(c)高内聚,往往会带来一定程度的低耦合度。高内聚决定了内部自行依赖,对外只提供必须的接口或消息对象,那么由此即可达成较低的耦合度。)
相关文章推荐
- 软件解耦
- 利用桥接模式实现手机品牌和手机软件之间的解耦 C++
- 软件开发中的解耦
- 软件解耦
- "善守"之道--谈软件开发中的监错/防错设计和异常处理机制问题——柯化成
- 让软件走近“恐怖地带”的元凶--未经测试的代码 (原文最终修订于 2006-09-05 晚上10:33:27)
- 软件作坊如何成为软件工厂
- Java开源软件六大帮派
- 如何写软件测试缺陷管理的报告
- (转)软件项目经理所必需具备的素质
- 软件企业的信息化重点是什么
- 软件客户需求权利书,软件客户需求义务书
- HTTP负载均衡软件(激流)的进展
- 开源数学软件
- 软件测试的金字塔体系--从1个中心到5个要素
- hadoop相关软件下载
- 软件试用期设计
- 软件测试工具LoadRuer常见问题整理
- 软件人员推荐书目(一) 大师篇
- C# 实现软件的重启