社区
研发管理
帖子详情
请一起总结一下降低耦合的方法
liuhui810
2004-10-29 09:12:38
看了不少书,也明白了很多东西。但真要我有条理的一一谈谈,还真无从说起。
所以我抛块砖,请高手们多指较一二。
比如,较少耦合的一个较好方法是将类分组,然后组织成包,并限制包间的依赖关系。
...全文
3045
76
打赏
收藏
请一起总结一下降低耦合的方法
看了不少书,也明白了很多东西。但真要我有条理的一一谈谈,还真无从说起。 所以我抛块砖,请高手们多指较一二。 比如,较少耦合的一个较好方法是将类分组,然后组织成包,并限制包间的依赖关系。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
76 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
AutoAsm
2005-03-21
打赏
举报
回复
(1)对于有n个元素的系统,可能的耦合关系复杂度为O(n^2)
(2)采用划分成子系统的方法(允许子系统嵌套),耦合关系可以降低到O(ln(n))的复杂度。
(3)采取分层次的方法,耦合关序复杂度可以达到O(n)的水平。
--------------
不错。
hmyujian
2005-03-02
打赏
举报
回复
mark!!
SInoyew
2005-02-16
打赏
举报
回复
去耦的同时往往可能会带来新的潜在的耦合.
一切具体的问题都回归为哲学问题...
很不错!
apollo333
2005-02-08
打赏
举报
回复
同意楼上的。每一句都很实在。
再具体一点,应该多用好的设计原理和设计模式在面向对象的开发中,因为都是很多年积累下来的经验。对于大多数系统,都能起到一定的积极作用。好的设计原理包括SRP,OCP,DIP,LSP。还有更多设计模式来应用。
如果能采用TDD开发当然很理想。
另外,频繁的重构也非常重要。
AutoAsm
2005-02-04
打赏
举报
回复
良好的设计和接口与实现的分离是减少耦合的有效方法。
但是一般来讲,减小耦合会在实现上增加工作量,当然,代码更易于维护和变更。
如果你手头没有设计方面比较扎实的人,减小耦合是空谈,都是一些guideline的指导,具体还是得有牛人来设计。
cnepine
2005-01-26
打赏
举报
回复
少使用继承,多使用组合。
模块的功能化分尽可能的单一。
遵循一个定义只在一个地方出现。
少使用全局变量。
类属性的封装一定使用private关键字,类属性的设置和获得使用set和get方法。
simon_sun_simon
2005-01-21
打赏
举报
回复
人类越是可以追求什么越是适得其反,正像现代化带给人类的是方便,然而从长远的角度上看,却是间接的破环人类的生存环境!工业化越严重的城市自然环境也就差!去耦合的情况应该是实际情况而定,可以的追求反而适得其反!正像oz6说的,去耦合的过程中,实际也隐藏着潜在的耦合。
sjf331
2005-01-13
打赏
举报
回复
避免循环调用
许野平
2004-12-15
打赏
举报
回复
(1)对于有n个元素的系统,可能的耦合关系复杂度为O(n^2)
(2)采用划分成子系统的方法(允许子系统嵌套),耦合关系可以降低到O(ln(n))的复杂度。
(3)采取分层次的方法,耦合关序复杂度可以达到O(n)的水平。
liuhui810
2004-12-14
打赏
举报
回复
虽然大家你说一句,我说一句,但是我越来越清楚了.讨论真好.
iceneve
2004-12-14
打赏
举报
回复
耦合和内聚分别是设计发展和变化的外因和内因,内因是根据,外因是条件,外因通过内因起作用。
所以,没有绝对意义下的解耦,在面向对象的设计中,所有的设计问题都应该可以归结到“单一职责原理SRP”的应用上。
金庆
2004-12-14
打赏
举报
回复
就象庖丁解牛,要在关节处分离,而不要去砍骨头。
liuhui810
2004-12-13
打赏
举报
回复
哈哈,这个讨论进首页啦.
zijida
2004-12-13
打赏
举报
回复
Panr(光荣) ( ) 信誉:99 2004-11-17 12:54:39 得分: 0
我不是学模式设计的,就讲讲自己的写代码的一个体会吧:在功能的实现函数中决不操作成员变量,全部数据通过函数的参数传入。
--------------------------------------------------------------------------------------
同意这个。
1.在问题域上尽力划分出较小关联的功能分布
2.通过定义良好的接口来实现不同的功能域之间的信息交换
3.一个功能域内的操作不应该直接或者潜在的改变其他功能域的状态和行为方式
4.一个功能域内发生的异常和数据造成的破坏不应该扩展到其他相关功能域
autoegg
2004-11-25
打赏
举报
回复
Mark
lwj_dxy
2004-11-23
打赏
举报
回复
Mark
SimerJoe
2004-11-20
打赏
举报
回复
Mark
vc_hking
2004-11-18
打赏
举报
回复
降低耦合的思路类似于是它服用性更好,改动量尽可能的少,不要造成大面积的污染。
Panr
2004-11-17
打赏
举报
回复
我不是学模式设计的,就讲讲自己的写代码的一个体会吧:在功能的实现函数中决不操作成员变量,全部数据通过函数的参数传入
likunfeng
2004-11-17
打赏
举报
回复
般个凳子学软工
加载更多回复(55)
紧
耦合
(Tight Coupling)和松
耦合
(Loose Coupling)
在上述示例中,首先实例化了具体的 Inventory 类对象,并将其传递给 Order 类的构造函数。
总结
:松
耦合
是一种良好的软件设计原则,它通过使用抽象、接口和依赖注入等技术来
降低
模块之间的依赖关系,提高代码的可维护性、可测试性和可扩展性。紧
耦合
的代码往往更加脆弱、难以修改和扩展,因此在开发过程中应尽量避免紧
耦合
的设计。紧
耦合
(Tight Coupling)和松
耦合
(Loose Coupling)是描述模块或组件之间
耦合
程度的两个概念。类与具体实现解耦,提高了松
耦合
性。类,并在构造函数中实例化了该类。
深入理解高内聚,低
耦合
起因:模块独立性指每个模块只完成系统要求的独立子功能,并且与其他模块的联系最少且接口简单,两个定性的度量标准――
耦合
性和内聚性。
耦合
性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其
耦合
性就越强,模块的独立性则越差。模块间
耦合
高低取决于模块间接口的复杂性、调用的方式及传递的信息。
耦合
性分类(低――高): 无直接
耦合
;数据
耦合
;标记
耦合
;控制
耦合
;公共
耦合
;内容
耦合
; 1 无直接
耦合
: 2 数据
耦合
: 指两个模块之间有调用关系,传递的是简单的数据值,相当于高
C++类之间双向
耦合
规避的常见
方法
C++中的双向
耦合
虽然在某些情况下是必要的,但它也可能带来诸多复杂性。通过合理设计类的依赖关系,使用接口、抽象类、依赖注入以及设计模式等技术,可以有效减少双向
耦合
对系统带来的负面影响。最终,理解双向
耦合
的本质,并在设计中有意识地避免不必要的
耦合
,创建出更加健壮、可维护和可扩展的代码,是提升代码质量和系统可维护性的关键。
数据
耦合
的代码例子c语言,代码
耦合
的处理
耦合
是每个程序员都必须面对的话题,也是容易被忽视的存在,怎么处理
耦合
关系到我们最后的代码质量。今天Peak君和大家聊聊
耦合
这个基本功话题,
一起
捋一捋iOS代码中处理
耦合
的种种方式及差异。简化场景
耦合
的话题可大可小,但原理都是相通的。为了方便讨论,我们先将场景进行抽象和简化,只讨论两个类之间的
耦合
。假设我们有个类Person,需要喝水,根据职责划分,我们需要另一个类Cup来完成喝水的动作,代码如下:...
交流
耦合
和直流
耦合
我们采集到的信号总不会是理想波形,例如,在采集交流信号的时候,可能会混入直流分量,而在采集直流信号的时候,也有可能混入交流分量,所以一个待测信号包含交流和直流两部分。
耦合
是指两个不同介质中通过物理连接时进行的能量传递。
研发管理
1,268
社区成员
28,284
社区内容
发帖
与我相关
我的任务
研发管理
软件工程/管理 管理版
复制链接
扫一扫
分享
社区描述
软件工程/管理 管理版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章