权衡职责分配

原创 2006年05月29日 11:01:00

现在的面向对象分析和设计,鼓励我们将一个任务分配给多个对象共同协作完成(当然,任务要足够复杂),也鼓励我们相对于继承机制,要尽量使用对象组合的方式来解决问题。于是,对象之间的联系就变得密切,对于复杂的任务,可能会出现大量对象互相关联引用,形成复杂的耦合网络。然而,这恰恰违反面向对象分析设计的另一重要原则:弱耦合。实践表明,这些原则都是有益的,但又是矛盾的,也不足为奇,很多看似正确的事情都是互相矛盾的。

有些矛盾是可以解决的,在设计时可以采用合适的降耦方法。比如,一些设计模式就是用来降耦的(主要是行为型模式)。经典模式中,chain of responsibilitycommandmediatorobservor,还有结构型模式中的façadeproxy,都能起到降耦的作用。可以发现,不管是这些模式,还是别的方法,降耦的本质就是让实体对象不进行直接关联,而是产生一个中间对象,由这个中间对象封装某种关联,以降低耦合。

有些矛盾又是不可解决的,这时候就要权衡一下主次了。这种权衡往往和实际问题相关。我觉得,弱耦合通常更加重要:易复用,易扩展,易维护。这时应该考虑一下职责分配的粒度,不要过细,以免增加对象间的耦合度。

相关文章推荐

对象协作与职责分配

  • 2013年03月19日 14:54
  • 43KB
  • 下载

GRASP(通用职责分配软件模式)介绍及一些小经验

通用职责分配软件模式(GRASP)侧重于基本的通用设计过程,是针对FURPS+需求模型中的Functional(功能性)的重要的设计原则。 GoF设计模式更注重FURPS+需求模型中的质量需求的设计。...
  • yuyin86
  • yuyin86
  • 2012年02月15日 23:38
  • 498

GRASP (职责分配原则)设计模式

GRASP (职责分配原则) 要学习设计模式,有些基础知识是我们必须要先知道的,设计模式是关于类和对象的一种高效、灵活的使用方式,也就是说,必须先有类和对象,才能有设计模式的用武之地,否则一...

PMP学习笔记(1)工作分解结构-资源分解结构-职责分配矩阵-资源日历

在之前的项目启动阶段,我们已经清楚了项目的目标;通过制定项目章程,完成了项目范围的确定; 紧接着对项目内容进行WBS工作包拆解,那么 关于工作和人员的对应关系,关系顺序如下: 一、工作分解...

GEASP(职责分配原则)

GRASP (职责分配原则) 要学习设计模式,有些基础知识是我们必须要先知道的,设计模式是关于类和对象的一种高效、灵活的使用方式,也就是说,必须先有类和对象,才能有设计模式的用武之地,否则一...

软件公司职责分配

岗位:项目经理 主要职责: 1、 计划: a)项目范围、项目质量、项目时间、项目成本的确认。 b)项目过程/活动的标准化、规范化。 c)根据项目范围、质量、时间与成本的综合因素的考虑,进行项目的总体规...

RACI 职责分配矩阵 模型使用详解及案例分析

一、RACI产生背景   RACI是项目管理中的人力资源管理方法。一个项目团 队的成员往往来自于不同背景的各个部门,这些成员受部门经理和项目经理的双重管辖。由于这些人往往是临时组织起来的,并且项目的各...

通用职责分配软件模式(GRASP)介绍和个人理解

General responsibility assignment software patterns 简称GRASP 翻译是通用职责分配软件模式,不同于GOF的23中设计模式那么具体到场景和解决方案...

设计模式学习之GRASP通用职责分配软件模式

通用职责分配软件模式GRASP(General Responsibility Assignment Software Patterns)是面向对象设计中的基本设计模式.。GRASP描述了有关对象设计和...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:权衡职责分配
举报原因:
原因补充:

(最多只允许输入30个字)