关闭

设计模式-对软件设计中耦合程度的思考

标签: 设计模式简单工厂模式耦合度
968人阅读 评论(3) 收藏 举报
分类:
  软件耦合度高的模式,一般对象数少,可能容易理·32解写;耦合度低的模式,对象数相对多。拿计算器的业务来讲:

耦合度较高的版本:

private static double getResult(double n1, double n2, string operation)
{
  double double rtnResult;
  switch(operation)
  {
    case "+":
    ...
    break;
    case "-"
    ...
    break;
    case "*"
    ...
    break;
    case "/"
    ...
    break;   
  }
  return rtnResult;
}

   计算器的加减乘除操作通过一个函数,直接就实现了主要的业务逻辑。这种方式的优点是没有形成新的业务对象;缺点是扩展性差、后期不易维护等。显然加减乘除是主要的业务操作,所以需要改造为4个业务对象,每个业务对象封装自己的操作,以及一个类能管理这4个模块。并且,这4个模块功能是并列的,这样可以套用“工厂模式”来实现。

  UML如下所示:

这里写图片描述

   类图很简单,4个业务类分别实现接口,MangeOper类引用4个业务对象,确定接口的实现类,UI客户端引用这个ManageOper类,告诉它用户选择了加减乘除中的哪个操作。

  在计算器这个例子中,以上设计模式是好的,主要业务对象耦合度较低,以后想要扩展其他操作,只需要写出很多个新的业务类即可。但是,是不是所有的设计都要耦合度尽可能的低?

  这是一个好问题!

  问题无绝对! 不是说松耦合就一定好,紧耦合就一定不好。如果构成某个软件的模块地位非常低,那么就要考虑是不是要设计的耦合度很低,灵活性很强了?!

  因为我完全不想花太多精力去编写它,并且以后它几乎不怎么改变,这样的话,采取紧耦合也未尝不是一种好的设计方法;换句话说,如果这是公司的一个重点业务,那么,需要写的耦合度小写,好好构思相应的设计模式来。

  设计模式跟着业务和未来的业务走!

2
0
查看评论

软件工程中的耦合

简单地说,对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。 就是依赖性,相关性吧!!! 有软硬件之间的耦合,还有软件各模块之间的耦合。 耦合性是程序结构中各个模块之间相...
  • aiwuhui03
  • aiwuhui03
  • 2014-01-08 10:04
  • 1108

软件设计之高内聚低耦合

原文出处:http://blog.csdn.net/nengyu/article/details/421416351. 低耦合(Low Coupling)“低耦合”这个词相信大家已经耳熟能详,我们在看spring的书籍、MVC的数据、设计模式的书籍,无处不提到“低耦合、高内聚”,它已经成为软件设计质...
  • axi295309066
  • axi295309066
  • 2016-08-29 10:43
  • 1659

什么是耦合度

软件工程中 简单地说,软件工程中对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。 有软硬件之间的耦合,还有软件各模块之间的耦合。 耦合性是程序结构中各个模块之间相互...
  • jianxuanbing
  • jianxuanbing
  • 2014-05-25 21:25
  • 1904

耦合度与设计模式

高内聚,低耦合(High Cohesion、Low Coupling) 是一句近乎于“为实现四个现代化而努力”式的口号,耳熟并不一定能详。这个口号是在软件工程里第一次碰到的,它的定义估计是计算专业术语里最欠扁的定义,内聚:一个模块内各个元素彼此结合的紧密程序。耦合:一个软件结构内不同模块之间互连程序...
  • cabinriver
  • cabinriver
  • 2011-06-21 09:26
  • 2391

软件工程中的各种耦合类型

耦合性(Coupling),也叫耦合度,是对模块间关联程度的度量。耦合的强弱取决与模块间接口的复杂性、调用模块的方式以及通过界面传送数据的多少。模块间的耦合度是指模块之间的依赖关系,包括控制关系、调用关系、数据传递关系。模块间联系越多,其耦合性越强,同时表明其独立性越差。软件设计中通常用耦合度和内聚...
  • qq_20480611
  • qq_20480611
  • 2016-05-06 10:43
  • 3765

软件工程中的内聚与耦合

简单地说,对象之间的耦合度就是对象之间的依赖性。指导使用和维护对象的主要问题是对象之间的多重依赖性。对象之间的耦合越高,维护成本越高。因此对象的设计应使类和构件之间的耦合最小。    有软硬件之间的耦合,还有软件各模块之间的耦合。    耦合性是程序结构中各个模块之间相互关联...
  • weiqubo
  • weiqubo
  • 2012-07-27 15:14
  • 3607

软件设计原则:高内聚低耦合

这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低。     一个程序有50个函数,这个程序执行得非常好;然而一旦你修改其中一个函数,其他49个函数都需要做修改,这就是高耦合的后果。编写概要设计的时候设计类或者...
  • yin_pengpeng
  • yin_pengpeng
  • 2015-10-27 20:32
  • 727

软件工程-耦合内聚

耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。 模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
  • suniyadadechuentian
  • suniyadadechuentian
  • 2015-06-01 15:33
  • 1425

程序设计模式之设计模式的重大意义

首先说说设计模式的用途: 在软件系统里面,系统的健壮性,可维护性,可扩展性 非常重要,也是一个成熟的系统必不可少的。 软件系统架构暂时没有涉及,但是无论怎么架构最后通过程序去实现,而程序并非简单功能实现。 我们是编程序的人别人叫我们程序员。个人觉得编程也是一种设计:  ...
  • s228245214
  • s228245214
  • 2015-08-12 23:04
  • 743

面向对象中的聚合与耦合

写的程序多了,慢慢感觉模块之间的耦合和聚合是那么的重要,一个项目肯定会有不同的功能和模块,这样的话肯定要做到“高内聚,低耦合”,那么到底什么是“高内聚,低耦合”,下面就以自己的浅薄的认识来为大家讲解下,又不足的地方还望指点。 因为聚合与耦合这两个概念一直都是以"高聚合、低耦合"...
  • wangdong_333
  • wangdong_333
  • 2014-03-01 21:10
  • 1505
    算法channel

    交流思想,注重分析,实例阐述,通俗易懂,包含但不限于:经典算法,机器学习,深度学习,LeetCode 题解,Kaggle 实战。期待您的到来!

    算法与人工智能交流群:646901659

    个人资料
    • 访问:319460次
    • 积分:7589
    • 等级:
    • 排名:第3380名
    • 原创:350篇
    • 转载:1篇
    • 译文:0篇
    • 评论:58条
    博客专栏