1. 信息专家(Information Expert)
如果某个类能够在某方面具有完整的信息,足以实现某个责任,就将这个责任分配给这个类,这个类即所谓的信息专家。
2. 创造者(Creator)
应用情况符合以下条件之一,类A应该具有创建类B的责任:
(1) A是B的聚合
(2) A是B的容器
(3) A有初始化B的数据
(4) A记录B的实例
(5) A频繁使用B
3. 低耦合(Low Coupling)
下类情况A,B两个类产生耦合:
(1) A具有一个B的属性
(2) A调用B对象的方法
(3) A的方法包括对B的引用,例如返回的是B类型或参数是B类型
(4) A是B的子类,或者A是B的实现类
不对陌生人说话(Don’t Talk to Strangers)原则:
不要相连不需要通信的两个对象,不要做无为的耦合
拇指规则二条:
(1) 如果A已经与B有连接,如分配责任A给B不合适(违反信息专家模式),那么分配责任B给A。
(2) 两个模块中的内部类间连接是一个大错误
4. 高内聚(High Cohension)
高内聚是指,我们要努力分解类,使得分解出来的类具有独立的责任。
低内聚是指,一个类单独处理很多不同模块的事务。如即处理数据存取功能,又处理用户接口操作或图形处理。
5. 控制器(Controller)
人们通常将接收和处理系统事件的职责分配给以下类:
(1) 能全面代表系统、设备或者子系统的类
(2) 可以代表系统事件发生时用例发生情景的类
(3) 代表某些卷入真实世界应用中的活动的类(例如人物角色控制器类)
以上这些类就是控制器类。不要将这些责任分配给用户界面类。
6. 多态(Polymorphism)
当相关的行为只是由于种类不同时,可以分配相关的责任给指定的种类。多态可以使设计的内聚提高。
7. 纯虚构(Pure Fabrication)
高内聚与低耦合是相互矛盾的,因为高内聚意味类的数量增多,对象间要合作完成任务,它们之间的连接就要增加,使得耦合提高。要解决这个问题,可以应用纯虚构模式。
8. 间接(Indirection)
要避免对象间直接耦合,可以将协调组件或服务的职责分配给中间对象,这个中间对象称为间接或中介对象。
9. 受保护变化(Protected Variations)
找出预计有变化或不稳定的点,我们有责任为这些变化的点创建稳定的接口。
受保护变化也可理解为开闭原则(the Open Closed Principle, OCP),一个软件实体应当对扩展开放,对修改关闭。
分享到:
相关推荐
通过九年级政治课程的第二课《做一个负责任的公民》,不仅能够引导学生们懂得在日常生活中如何信守承诺,还能让他们学会在犯错时勇担过错,从而培养他们成为一个有责任心、有道德底线的人。 课程的核心概念围绕两个...
在第2章中,我们看到了GRASP模式的具体实现,它通过一系列原则帮助我们负责任地设计对象。例如,信息专家模式强调应将任务委托给拥有执行该任务所需信息的对象;而低耦合模式则指出应该减少对象间的依赖性,以降低...
2. 负责任地设计对象——GRASP 在面向对象设计中,责任是类的核心,包括知道责任(了解信息)和行为责任(执行操作)。GRASP原则强调将责任分配给最适合执行它的对象,例如: 1. Information Expert:责任应交给拥有...
《信息系统分析与设计》是由王晓敏编著,属于清华大学出版社出版的高等学校电子信息类规划教材。本书主要围绕信息系统的基础理论、开发技术、建设过程以及相关...这也体现了编著者对学术严谨和对知识传播负责任的态度。
1. 培养负责任、细心的工作态度和团队合作精神。 2. 提升与用户沟通,提取需求的能力。 3. 强调技术标准、操作规范、服务质量和知识产权意识。 4. 学习搭建Python软件硬件开发环境。 5. 提高代码理解能力,能读懂已...
项目工程资源经过严格测试可直接...2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于整理和收集资料耗费时间的酬劳 3. 积分资源不提供使用问题指导/解答
责任保险是一种特殊的保险类型,它以被保险人对第三方依法应负的赔偿责任为保障对象。这一保险形式的出现基于健全的民事法律制度,旨在帮助个人和企业减轻因意外事件导致的经济负担。责任保险的主要特征包括:以法律...
用户必须确保产品的正确使用,并负起在安全、专业使用、安装、操作和维护设备方面的责任。当使用这些应用示例时,用户应当意识到西门子不对超出责任条款范围的任何损坏或索赔承担责任,并且西门子保留随时修改这些...
项目工程资源经过严格测试可直接...2. 部分字体及插图等来自网络,若是侵权请联系删除,本人不对所涉及的版权问题或内容负法律责任。收取的费用仅用于整理和收集资料耗费时间的酬劳 3. 积分资源不提供使用问题指导/解答
模型通过不同颜色定义了云服务商和客户应负责任的部分,以及双方共同承担的责任部分。 在云计算与传统等保保护对象差异层面,云平台和云上系统保护对象与传统保护对象有所不同。云计算环境下保护对象包括物理和环境...
第九章则关注软件行业的法律法规和伦理道德问题,包括知识产权、软件版权、数据保护法规以及职业操守等,这对于成为一名负责任的软件设计师非常重要。 通过这些章节的习题解答,备考者不仅可以巩固理论知识,还能...
一个负责任的个体能够正确处理个人与社会的关系,能够在面对选择时坚守内心的道德信念。而逃避责任,则可能导致个人信誉的损失,甚至对社会造成伤害。因此,责任意识的培养,对青少年来说至关重要,它有助于塑造他们...
如果有用户在运行代码时遇到问题,作者还提供了人工远程调试服务,这说明了作者对项目的负责任态度,以及愿意帮助用户解决实际问题。 项目还贴合了“java 数据库 信息管理系统”这三个标签。Java是开发语言,数据库...
这既是对系统稳定性的保障,也是对生产过程安全的一种负责任的做法。 在实际操作中,确保PLC在STOP状态下进行更改和下载还涉及到项目管理和版本控制的问题。建议在对PLC程序进行更改前,先在TIA博途中进行必要的...
What是权限针对的对象或资源(Resource、Class);How是具体的权限(Privilege,正向授权与负向授权)。 RBAC模型的主要特征有两个:第一,权限的变化相对较慢,降低了授权管理的复杂性和管理开销;第二,灵活地...
第2章负责任地设计对象——GRASP 9 2.1InformationExpert(信息专家) 11 2.2Creator(创造者) 13 2.3LowCoupling(低耦合) 14 2.4HighCohesion(高内聚) 15 2.5Controller(控制器) 17 2.6Polymorphism...
《数据分析课程设计》作为信息管理与信息系统、大数据管理与应用等专业的核心课程,其教学目标是提升...通过这一系列的实验,学生将深刻理解数据的社会责任,为成为未来能够负责任地处理数据的专业人士打下坚实的基础。
12. **编制、审核、批准**:这三个字段代表了报告的生命周期,编制者是报告的作者,审核者对报告内容进行核查,批准者通常是高级管理层,他们对最终的报告内容和决策负有责任。 设计开发评审报告是企业管理中的重要...
首先,合同的**合同标的**是指甲乙双方共同认可的装修设计及施工的对象,即业主所提供的特定房屋。乙方,即装修公司,在合同约束下,负责根据甲方的具体要求和提供的设计方案开展工作,并确保其装修设计和施工行为...
知识点1:英特尔杯大学生电子设计竞赛嵌入式系统专题邀请赛的参赛对象 * 参赛对象:普通高校全日制在校本科学生 * 参赛方式:队际形式参赛,自由命题,无封闭竞赛场所 知识点2:参赛作品的形式和要求 *参赛作品的...