面向对象设计中最重要了有两个方面,一是类的识别,一个类的职责分配。其实这两者之间其实有内在联系。比如当你认为有必要新建一个类时,你一定是已经有了某个职责要分配给它;当你发现某个职责谁做都不合理时,就会考虑是不是要新建一个类。今天主要聊下职责分配的问题。
职责分配最重要的一条就是专家原则,就是谁具备完成这项职责的条件,拥有相关的资源;比如吃饭这个事,只有嘴巴最适合做;因为它有个入口,还拥有牙齿这样的利器,并且具备把食物送到胃里面去的通道。具体设计中也是一样,谁最适合做就让它做。当然这可能碰到这样的情况,发现有某个类是个“多面手”,很多事情它都能做,这时候根据专家原则,你就会发现它的职责会越来越多。这时候你觉得是不是专家原则有问题?不是,问题的根源是 设计中不允许有这样的"多面手"类,你必须把它的资源分给其它类(也许需要New新类)。
专家原则其实是个很有趣的现象,其实我们每天都会碰到。项目经理最爱找谁?特别是紧急的事情,他会找一个他认为最能解决他问题的那个人。所以你经常发现项目组的核心程序员、项目组长非常忙,而一般成员就相对清闲些。这就是专家原则在起作用。以此推测,当你新加入一个陌生团队时,你就很容易找到谁是核心成员。如果你是项目组长,你也许必须让你的手下成为至少一个方面的专家,否则根据专家原则,你就不可能解脱。
要学会做专家,要学会培养专家,更重要的是识别专家。
----------------------------------------------------------------------
张瑜,Mybeautiful, zhangyu0182@sina.com.
分享到:
相关推荐
在面向对象设计中,对象协作与职责分配是核心原则之一。这些原则旨在创建清晰、可维护和高效的设计,确保每个对象专注于自己的特定职责,而不是试图完成所有任务。以下是对这些概念的详细解释。 首先,对象协作是指...
GRASP包含了9种模式,它们定义了对象设计和职责分配的基本原则,为如何将现实世界问题抽象为对象提供指导。 1. **信息专家(Information Expert)**:这是面向对象设计的基本原则,表示职责应分配给拥有完成该职责...
本文将深入探讨GRASP(一般 Responsibility Assignment Software Patterns,职责分配原则)以及设计原则,这些都是构建高质量、可维护的软件系统的基础。 首先,GRASP是一种指导对象设计的原则集合,它的目标是帮助...
#### GRASP(职责分配原则) 在深入探讨具体的设计模式之前,了解GRASP(General Responsibility Assignment Software Patterns)原则是非常重要的。GRASP是一组用于指导面向对象设计的基本原则,它包含了九种模式...
这包括技术人才、市场专家等,他们对公司的成长至关重要,合理的股权分配可以吸引并留住这些人才。 接下来是三条基本原则: 1. **公平性**:股权分配应基于个人的贡献和预期贡献,而不是简单的职务或关系。每个人...
1. **GRASP原则** - 通用职责分配软件模式: - **信息专家**:职责应赋予拥有执行职责所需信息的对象。 - **创建者**:负责创建对象的类通常是紧密相关的。 - **低耦合**:减少对象之间的依赖,增强系统的灵活性...
2. 信息专家(Expert)模式:将职责分配给具有履行职责所需要的信息的类。 3. 低耦合(Low Coupling)模式:在分配一个职责时要保持低耦合度。 4. 高内聚(High Cohesion)模式:分配一个职责的时候要保持类的高聚合...
#### 国内管理专家总结的基本原则 1. **战略匹配原则**:组织结构必须与企业战略相匹配,以支持战略的实施。 2. **顾客满意原则**:组织架构和业务流程应以提高产品和服务质量、满足客户需求为核心。 3. **精简且...
1. 专家模式(Expert):这个模式强调将职责分配给拥有完成该职责所需信息的类。这意味着每个类应专注于自己的专业领域,避免职责的混杂,以提高类的内聚性。例如,一个处理字符串的类不应包含日期处理功能。 2. ...
《技术专家委员会管理办法》是企业为了提升技术研发、人才培养和团队建设而设立的一种组织管理制度。...通过明确的职责划分、成员选拔和管理机制,确保专家委员会能够充分发挥其作用,为公司的科技进步提供有力支持。
本协议涉及的主要知识点是医院与外部专家之间的合作方式和责任分配。甲方(医院)决定聘请乙方(专家)担任特定科室的专家门诊、手术、查房和教学工作。协议包含了以下几个核心内容: 1. 聘请期限:明确合同的起止...
- **职责分配**:专家门诊医生由各科室的科主任或门诊部进行排班,并上报医务科审批后备案。 #### 二、专家门诊排班与管理 - **排班流程**:各科科主任或门诊部负责排班,由门诊部统一安排诊室,并由挂号室负责分诊...
类的设计原则涵盖了开闭原则、依赖倒置原则、Liskov替换原则、单一职责原则、接口分离原则、组合复用原则以及最少知道原则。而包的设计原则则包括发布与复用等价原则、共同封闭原则、共同复用原则、无循环的依赖原则...
评标专家的选拔严格,要求候选人必须是遵纪守法的公民,具有高级专业技术职务或相当的专业水平,熟悉招标投标和政府采购法规,身体健康,并能独立、公正地履行职责。 评标专家享有一定的权利,包括独立评审投标文件...
GRASP(General Responsibility Assignment Software Patterns)是一组用于分配类职责的模式集合,它提供了九种基本模式来帮助开发者做出正确的设计决策。下面简要介绍几种常见的GRASP模式: #### 1. 信息专家 ...
GRASP原则是设计对象职责分配的指导框架,它强调根据职责来设计对象。职责分为了解型和行为型,前者涉及对象对信息的掌握,后者关注对象的行动和与其他对象的交互。信息专家模式是GRASP的一种,它建议将职责赋予拥有...
20. **GRASP原则**:General Responsibility Assignment Software Principles,包括控制器、多态、纯虚构、信息专家等原则,指导对象责任分配。 21. **SOLID原则**:单一职责、开闭、里氏替换、接口隔离和依赖倒置...
这些原则源自西方管理学家的理论,同时也被国内专家所采纳和完善。以下是关键原则的详细说明: 1. **目标原则**:组织架构的设计应围绕组织的长期和短期目标展开,确保所有部门和岗位的工作都能直接或间接服务于...
### 通信集团有限公司专家人才管理办法知识点...综上所述,这份《通信集团有限公司专家人才管理办法》旨在通过明确的管理机制、合理的规划以及具体的职责分配,来有效管理和激励专业人才,从而促进企业的持续健康发展。