高内聚低耦合的理解有关问题
发布时间:2011-06-23 20:39:07 文章来源:www.iduyao.cn 采编人员:星星草
高内聚低耦合的理解问题
新手正在学习设计思想,
想问:
高耦合和低内聚是对立(矛盾)的两面吗?还是两样不同的东西?
例如,如果说某个设计思路符合高内聚思想了,是否就意味着同时也符合低耦合了?
------解决方案--------------------
简单一点来说吧, 高内聚、低耦合讲的是程序单位协作的问题,
你可以这样理解,一个企业的管理,
最理想的情况就是各个部门各司其职,井然有序,互不干涉,
但是需要沟通交流的时候呢,
各个部门都可以找到接口人专门负责部门沟通以及对外沟通。
在软件里呢, 就是说各个模块要智能明确, 一个功能尽量由一个模块实现,
同样,一个模块最好只实行一个功能。这个是所谓的“内聚”;
模块与模块之间、系统与系统之间的交互,是不可避免的,
但是我们要尽量减少由于交互引起的单个模块无法独立使用或者无法移植的情况发生,
尽可能多的单独提供接口用于对外操作, 这个就是所谓的“低耦合”。
但是实际的设计开发过程中,总会发生这样那样的问题与情况,
真正做到高内聚、低耦合是很难的,很多时候未必一定要这样,
更多的时候“最适合”的才是最好的,
不过,理解思想,审时度势地使用,
融会贯通,灵活运用,才是设计的王道。
------解决方案--------------------
掉了两个条件
对外低耦合,对内高内聚
这并不矛盾,实际就基于单一职责 这个原则
一个职责应该高内聚在一个对象里完成,而不应该在多个对象里完成
这样与这个职责相关的对象只有一个,对外来说他不依靠其他类,他对其他类来说是没有耦合的
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
(VS2005)VB有关继承封装在DLL里窗体
公司里有一套自己的架构并把它封装在叫MFW的DLL里,再学习使用时发现了很多不明白的地方。例如:现...
-
如何让treeview点击结点不刷新页面?
如何让treeview点击结点不刷新页面?
------解决方案--------------------
帮你顶
------解决...
-
单薄的业务层
相信开发WEB信息的人都用到过三层架构
表示层--》业务层--》数据访问层
以前一直开发CS结构最近一年一直在开发...
-
类爆炸问题,对维护也是恶梦?
原意在ERP项目中有设计一个工序类用來描述工序:
public Process
{
public string ProcessNo
{
...
-
怎么实现随意变换网页字体?
想做个艺术签名的网站
字体也找了几个
就是在用户输入“名字”后
把“名字”转换成几个字体显示出来
...
-
关于政府部门网站数据库设计
今天上面安排让我做个政府有关部门的网站,我看了下不是很复杂。可到了设计数据库表时候碰到了些问题...
-
如何自动为录入的人员信息分配用户权限
我这里有两类人,一类是教师,一类是学生,要解决的问题是,在用管理员身份录入教师和学生信息时,...
-
Ext.Net 和ExtJS
现在在做一个项目,用到了EXT.NET 但是有个缺点就是EXT.NET里的时间选择器dateField不能选择时分秒,现在想到用EXTJ...
-
谁手里有现成的提示框样式啊,急用
谁手里有现成的提示框样式或者皮肤啊 还有弹出div层的好看一点的样式 给我个呗 我这急用呢 ...
-
求两个样式的例子...
一个是点击修改弹出修改表单表格 出现在列表上 要特别好看的那种 最好是悬浮的
一个 要弹出的确...