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

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

一、GRASP模式(通用责任分配软件模式)概述 1.1、理解责任   1)什么是责任     责任是类间的一种合约或义务,也可以理解成一个业务功能,包括行为、数据、对象的创建等     知道责任...二、GRASP模式的分类   作用/则重点:完成责任分配(以及分配责任的时候需要注意的点)   GRASP模式也是遵循基本的设计原则的(也就是说GRASP模式是在基本设计原则基础之上建立的)。...三、COF设计模式概述     作用/则重点:代码的结构/完成的功能(以及这种结构的代码能解决哪一类问题)   GOF模式是遵循着GRASP模式的(也就是说GOF是在GRASP模式基础之上建立的...结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。   ...行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式

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

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

GRASP,职责分配软件模式,General Responsibility Assignment Software Patterns,】,是面向对象设计和职责分配中的九个基本原则,最早是在克雷·拉蒙1997...GRASP中提到的模式和原则包括有控制器(controller)、创建者(creator)、中介(indirection)、信息专家(information expert)、低耦合性(low coupling...因此,GRASP原则是心理层面的工具集,在面向对象软件设计学习上的辅助工具。 模式 在面向对象设计中,设计模式是针对问题以及其解决方案一个有命名的描述方式,可以应用在不同的情境中。...理想的设计模式可以让程序开发者知道要如何将解决方案应用在不同的环境下,并且进行取舍。在一些特定类型的问题中,许多模式会提供对象职责分配的指南。 信息专家 分配职责给对象的基本原则是什么?...在信息系统逻辑架构的面向对象系统中,若应用程序在应用层/服务层和业务逻辑之间有明确的分隔,GRASP控制器可以视为是应用层或是服务层的一部分。 相关模式或原则:命令模式、外观模式、层、纯虚构。

86820

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

GRASP,职责分配软件模式,General Responsibility Assignment Software Patterns,】,是面向对象设计和职责分配中的九个基本原则,最早是在克雷·拉蒙1997...GRASP中提到的模式和原则包括有控制器(controller)、创建者(creator)、中介(indirection)、信息专家(information expert)、低耦合性(low coupling...因此,GRASP原则是心理层面的工具集,在面向对象软件设计学习上的辅助工具。 模式 在面向对象设计中,设计模式是针对问题以及其解决方案一个有命名的描述方式,可以应用在不同的情境中。...理想的设计模式可以让程序开发者知道要如何将解决方案应用在不同的环境下,并且进行取舍。在一些特定类型的问题中,许多模式会提供对象职责分配的指南。 信息专家 分配职责给对象的基本原则是什么?...在信息系统逻辑架构的面向对象系统中,若应用程序在应用层/服务层和业务逻辑之间有明确的分隔,GRASP控制器可以视为是应用层或是服务层的一部分。 相关模式或原则:命令模式、外观模式、层、纯虚构。

1.4K20

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

欢迎 点赞✍评论⭐收藏前言GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式...GRASP与GOF(Gang of Four)模式的区别在于,GOF模式是一组特定的设计模式,提供了常见问题的解决方案,而GRASP则是一组通用的解决问题的原则,帮助设计者确定系统中各个类的职责和交互方式...GRASP提供了一些通用的、可重用的模式,可以帮助设计者更好地理解和应用面向对象设计原则。与GOF模式相比,GRASP更注重职责分配和交互方式的设计,而不是具体的模式实现。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。...foreach (var component in _childrens) { component.Print(depth + 1); } }}以上代码可在我的C#设计模式系列博文中结构型模式下的组合模式中找到

12311

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

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

33040

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

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

11511

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

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

23220

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

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、纯虚构原则(Pure Fabrication Principle) 二、使用步骤 示例 ---- 前言 GRASP:...首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。...我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。...即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

24630

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

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

14911

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

首先我们先来区分下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提供了以下指导原则:Creator:谁创建了对象,谁就应该负责管理对象之间的关系。Controller:将系统的控制逻辑集中到一个对象中。...GRASP提供了一些通用的、可重用的模式,可以帮助设计者更好地理解和应用面向对象设计原则。与GOF模式相比,GRASP更注重职责分配和交互方式的设计,而不是具体的模式实现。...GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。

17411

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

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

12211

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

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

24730

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

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

12011

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

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

17520

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

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

11011

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

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

13911

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

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

24820
领券