首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

面向对象设计的九大基本原则 (GRASP)

GRASP,职责分配软件模式,General Responsibility Assignment Software Patterns,】,是面向对象设计和职责分配中的九个基本原则,最早是在克雷·拉蒙1997...GRASP中提到的模式和原则包括有控制器(controller)、创建者(creator)、中介(indirection)、信息专家(information expert)、低耦合性(low coupling...这些模式都是针对软件开发上的一些问题进行解决。发明这些技巧不是为了要创造新的工作方式,而是为在面向对象设计上,旧的,经过测试的程序设计方式创建文档并且标准化。...克雷·拉蒙提到:“软件开发最关键的设计工具不是UML或其他的技术,是明了设计原则的心智。”[3]:272。因此,GRASP原则是心理层面的工具集,在面向对象软件设计学习上的辅助工具。...如何产生可可插拔的软件组件? 解决方案:当一些行为会因为类型(类别)而变化,用多态运算符将此职责分派到类型出现变化的类型。

86820
您找到你想要的搜索结果了吗?
是的
没有找到

面向对象设计的九大基本原则 (GRASP)

GRASP,职责分配软件模式,General Responsibility Assignment Software Patterns,】,是面向对象设计和职责分配中的九个基本原则,最早是在克雷·拉蒙1997...GRASP中提到的模式和原则包括有控制器(controller)、创建者(creator)、中介(indirection)、信息专家(information expert)、低耦合性(low coupling...这些模式都是针对软件开发上的一些问题进行解决。发明这些技巧不是为了要创造新的工作方式,而是为在面向对象设计上,旧的,经过测试的程序设计方式创建文档并且标准化。...克雷·拉蒙提到:“软件开发最关键的设计工具不是UML或其他的技术,是明了设计原则的心智。”[3]:272。因此,GRASP原则是心理层面的工具集,在面向对象软件设计学习上的辅助工具。...如何产生可可插拔的软件组件? 解决方案:当一些行为会因为类型(类别)而变化,用多态运算符将此职责分派到类型出现变化的类型。

1.4K20

在SQL Server2016中创建管家婆软件账套

更多管家婆软件问题,可来电咨询。...创建账套:按照上述配置登录软件,创建账套一般会出现错误序号是3169的报错提示。找到软件安装目录data文件夹里面的Grasp92文件。...常规对应的选项中,目标数据库可以手动新建为Grasp92,还原的源选择为:源设备,指定备份为软件安装目录下面data文件夹下面的Grasp92,文件类型:所有文件* 才能选择到。...备份时选择完整备份,路径默认是软件安装目录下面的data 文件夹里面,此处建议是删除路径单独选择备份路径和备份文件名称,文件名称是Grasp92。...注意: 1.用于还原数据的Grasp92文件需要从没有创建过账套的安装目录下面去拷贝使用; 2.还原Grasp92数据库步骤需要在2008r2数据库里面操作处理,不能在sql2000中操作, 3.在2012

3.8K80

OOAD-设计模式(二)之GRASP模式与GOF设计模式概述

一、GRASP模式(通用责任分配软件模式)概述 1.1、理解责任   1)什么是责任     责任是类间的一种合约或义务,也可以理解成一个业务功能,包括行为、数据、对象的创建等     知道责任...二、GRASP模式的分类   作用/则重点:完成责任分配(以及分配责任的时候需要注意的点)   GRASP模式也是遵循基本的设计原则的(也就是说GRASP模式是在基本设计原则基础之上建立的)。...通过扩展已有部件,可以提供新的行为以满足新需求,就使变化中的软件系统具有一定的适应性和灵活性。   ...已有的软件模块,最重要的抽象层模块不能再修改,就使变化中的软件系统具有一定的稳定性和延续性。   这个原则说的是,在设计一个模块的时候,应该可以使这个模块可以在不被修改的前提下被扩张。...三、COF设计模式概述     作用/则重点:代码的结构/完成的功能(以及这种结构的代码能解决哪一类问题)   GOF模式是遵循着GRASP模式的(也就是说GOF是在GRASP模式基础之上建立的

1.5K100

【愚公系列】2021年12月 通用职责分配原则(一)-信息专家原则(Information Expert Principle)

Software Patterns 通用职责分配软件模式。...首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。...我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。...即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

33040

【愚公系列】2021年12月 通用职责分配原则(五)-控制器原则(Controller Principle)

Patterns 通用职责分配软件模式。...首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。...我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。...即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

23020

【愚公系列】2021年12月 通用职责分配原则(七)-纯虚构原则(Pure Fabrication Principle)

General Responsibility Assignment Software Patterns 通用职责分配软件模式。...首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。...我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。...即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

24630

【愚公系列】2021年12月 通用职责分配原则(八)-中介原则(Indirection Principle)

Patterns 通用职责分配软件模式。...首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。...我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。...即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

18830

【愚公系列】2023年11月 通用职责分配原则(一)-信息专家原则(Information Expert Principle)

欢迎 点赞✍评论⭐收藏前言GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式...GRASP与GOF(Gang of Four)模式的区别在于,GOF模式是一组特定的设计模式,提供了常见问题的解决方案,而GRASP则是一组通用的解决问题的原则,帮助设计者确定系统中各个类的职责和交互方式...GRASP提供了一些通用的、可重用的模式,可以帮助设计者更好地理解和应用面向对象设计原则。与GOF模式相比,GRASP更注重职责分配和交互方式的设计,而不是具体的模式实现。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。...通用职责分配原则的信息专家原则非常实用,可用于指导各种类型的组织和活动,例如企业管理、项目管理、软件开发等。

17411

【愚公系列】2021年12月 通用职责分配原则(二)-创造者原则(Creator Principle)

Patterns 通用职责分配软件模式。...首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。...我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。...即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

24730

【愚公系列】2023年11月 通用职责分配原则(二)-创造者原则(Creator Principle)

欢迎 点赞✍评论⭐收藏前言GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式...GRASP与GOF(Gang of Four)模式的区别在于,GOF模式是一组特定的设计模式,提供了常见问题的解决方案,而GRASP则是一组通用的解决问题的原则,帮助设计者确定系统中各个类的职责和交互方式...GRASP提供了一些通用的、可重用的模式,可以帮助设计者更好地理解和应用面向对象设计原则。与GOF模式相比,GRASP更注重职责分配和交互方式的设计,而不是具体的模式实现。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。...在软件系统中,对象之间的关系和互动非常复杂,因此需要对各个对象的职责进行合理的分配,以确保系统能够高效地运行。根据创造者原则,一个对象应该只负责创建其他对象,而不应该承担其他对象的职责。

11511

【愚公系列】2023年11月 通用职责分配原则(六)-多态原则(Polymorphism Principle)

欢迎 点赞✍评论⭐收藏前言GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式...GRASP与GOF(Gang of Four)模式的区别在于,GOF模式是一组特定的设计模式,提供了常见问题的解决方案,而GRASP则是一组通用的解决问题的原则,帮助设计者确定系统中各个类的职责和交互方式...具体而言,GRASP提供了以下指导原则:Creator:谁创建了对象,谁就应该负责管理对象之间的关系。Controller:将系统的控制逻辑集中到一个对象中。...GRASP提供了一些通用的、可重用的模式,可以帮助设计者更好地理解和应用面向对象设计原则。与GOF模式相比,GRASP更注重职责分配和交互方式的设计,而不是具体的模式实现。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

12311

【愚公系列】2023年11月 通用职责分配原则(三)-低耦合原则(Low Coupling Principle)

欢迎 点赞✍评论⭐收藏前言GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式...GRASP与GOF(Gang of Four)模式的区别在于,GOF模式是一组特定的设计模式,提供了常见问题的解决方案,而GRASP则是一组通用的解决问题的原则,帮助设计者确定系统中各个类的职责和交互方式...GRASP提供了一些通用的、可重用的模式,可以帮助设计者更好地理解和应用面向对象设计原则。与GOF模式相比,GRASP更注重职责分配和交互方式的设计,而不是具体的模式实现。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。...低耦合原则可以提高软件的可维护性、可扩展性和可测试性,是软件设计和开发的重要原则之一。

11011

【愚公系列】2021年12月 通用职责分配原则(六)-多态原则(Polymorphism Principle)

Responsibility Assignment Software Patterns 通用职责分配软件模式。...首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。...我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。...即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

17520

【愚公系列】2023年11月 通用职责分配原则(五)-控制器原则(Controller Principle)

欢迎 点赞✍评论⭐收藏前言GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式...GRASP与GOF(Gang of Four)模式的区别在于,GOF模式是一组特定的设计模式,提供了常见问题的解决方案,而GRASP则是一组通用的解决问题的原则,帮助设计者确定系统中各个类的职责和交互方式...GRASP提供了一些通用的、可重用的模式,可以帮助设计者更好地理解和应用面向对象设计原则。与GOF模式相比,GRASP更注重职责分配和交互方式的设计,而不是具体的模式实现。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。...一、控制器原则(Controller Principle)控制器原则是通用职责分配原则的一种,在软件系统中,控制器负责协调和控制系统中的各个部分,确保它们能够协同工作,以实现系统的整体目标。

12111

【愚公系列】2023年11月 通用职责分配原则(九)-受保护变量原则(Protected Variations Principle)

欢迎 点赞✍评论⭐收藏前言GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式...GRASP与GOF(Gang of Four)模式的区别在于,GOF模式是一组特定的设计模式,提供了常见问题的解决方案,而GRASP则是一组通用的解决问题的原则,帮助设计者确定系统中各个类的职责和交互方式...具体而言,GRASP提供了以下指导原则:Creator:谁创建了对象,谁就应该负责管理对象之间的关系。Controller:将系统的控制逻辑集中到一个对象中。...GRASP提供了一些通用的、可重用的模式,可以帮助设计者更好地理解和应用面向对象设计原则。与GOF模式相比,GRASP更注重职责分配和交互方式的设计,而不是具体的模式实现。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

14911

【愚公系列】2021年12月 通用职责分配原则(九)-受保护变量原则(Protected Variations Principle)

Software Patterns 通用职责分配软件模式。...首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。...我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。...即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

24820

做机器人算法工程师是怎样一种体验?

(比如一个简单圆柱体大概得到3000+个不同grasp) 然后呢,当然要把这些grasp在仿真里面显示出来当时实验室在使用一款叫RobotToolKit,的自己开发的机器人仿真软件,没有说明文档,没有人有太多时间教你...,恰好IK(逆运动学)可以找到合适的关节角总之,3000个grasp,做了一下分类(简单clustering), 最终挑选出还能看的也就下图20个为了这20个grasp,我几乎花了两三个月的时间但最终也算知道这个仿真软件的一些基本东西了...,其中又有无数的hacking基本上一个做grasp的走完这一步,已经要怀疑人生了 ?...在这个hacking的世界里,我折腾了大半年,看看下图的手指末端的海绵,还有程序中各种小的技巧,总算也可以用KUKA LWR加上Barrett hand做点简单的grasp了 ?...有用的信息并且用到grasp里面去但是什么是对grasp有用的呢?

2.5K90
领券