Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【愚公系列】2021年12月 通用职责分配原则(八)-中介原则(Indirection Principle)

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

作者头像
愚公搬代码
发布于 2022-12-01 01:40:57
发布于 2022-12-01 01:40:57
23000
代码可运行
举报
文章被收录于专栏:历史专栏历史专栏
运行总次数:0
代码可运行

文章目录


前言

GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。

首先我们先来区分下GRASP与GOF模式的区别,它们主要在什么时候用,用来做什么。在软件开发过程中,我们常说面向对象开发,面向对象思想应该贯穿整个软件开发生命周期。我们在将现实世界中的业务对象及业务功能抽象成软件系统中的系统对象过程中应该遵循使用GRASP模式。而在具体技术实现上应该遵循使用GOF设计模式,来实现系统功能。即GRASP主要使用在分析设计阶段,与具体技术无关;而GOF模式主要使用在开发阶段,与具体技术相关,它是对GRASP设计成果进行实现时而使用,是一种开发阶段的设计模式。

GRASP软件设计模式包括9个模式:创建者、信息专家、低耦合、控制器、高内聚、多态性、纯虚构、间接性、防止变异。


提示:以下是本篇文章正文内容,下面案例可供参考

一、中介原则(Indirection Principle)

(1)问题

1、如何分配职责以避免两个(或多个)事物之间的直接耦合? 2、如何解耦对象以降低耦合度并提高系统的重用性?

(2)方案 分配职责给中间对象以协调组件或服务之间的操作,使得它们不直接耦合。中间对象就是在其他组件之间建立的中介。

(3)分析 要避免对象之间的直接耦合,最常用的做法是在对象之间引入一个中间对象或中介对象,通过中介对象来间接相连。中介模式对应于面向对象设计原则中的迪米特法则,在外观模式、代理模式、中介者模式等设计模式中都体现了中介原则。

二、使用步骤

示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public class SinaChat : ChatRoom {
    public override void Talk2All(User sender, string message) {
        _users.Where(u => u.Name != sender.Name)
              .ToList()
              .ForEach((u) => u.OnRecieve(sender, message, true));
        Console.WriteLine(SPLIT_BREAK);
    }
    public override void Talk2User(User sender, User reciever, string message) {
        var user = _users.Where(u => u.Name == reciever.Name)
                         .FirstOrDefault();
        user.OnRecieve(sender, message);
        Console.WriteLine(SPLIT_BREAK);
    }
}

以上代码可在我的 C#设计模式 系列博文中行为型模式下的中介者模式中找到。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-08-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【愚公系列】2021年12月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。项目中合理的运用设计模式可以完美的解决很多问题,每种模式在现在中都有相应的原理来与之对应,每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的核心解决方案,这也是它能被广泛应用的原因。
愚公搬代码
2022/12/01
2730
【愚公系列】2021年12月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
【愚公系列】2023年11月 通用职责分配原则(八)-中介原则(Indirection Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/30
1900
【愚公系列】2021年12月 通用职责分配原则(七)-纯虚构原则(Pure Fabrication Principle)
GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。
愚公搬代码
2022/12/01
3060
【愚公系列】2021年12月 通用职责分配原则(六)-多态原则(Polymorphism Principle)
GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。
愚公搬代码
2022/12/01
2310
【愚公系列】2023年11月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
设计模式(Design Pattern)是软件开发领域的宝贵经验,是多人反复借鉴和广泛应用的代码设计指导。它们是一系列经过分类和归纳的代码组织方法,旨在实现可重用性、可维护性和可理解性。使用设计模式,我们能够编写高质量的代码,使其更易于他人理解,并提供了代码可靠性的保证。
愚公搬代码
2023/11/18
2410
【愚公系列】2021年12月 通用职责分配原则(九)-受保护变量原则(Protected Variations Principle)
GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。
愚公搬代码
2022/12/01
3230
【愚公系列】2023年11月 通用职责分配原则(七)-纯虚构原则(Pure Fabrication Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/30
2110
【愚公系列】2023年11月 通用职责分配原则(九)-受保护变量原则(Protected Variations Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/30
2320
【愚公系列】2021年12月 通用职责分配原则(二)-创造者原则(Creator Principle)
GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。
愚公搬代码
2022/12/01
3080
【愚公系列】2021年12月 通用职责分配原则(三)-低耦合原则(Low Coupling Principle)
GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。
愚公搬代码
2022/12/01
2540
【愚公系列】2023年11月 通用职责分配原则(六)-多态原则(Polymorphism Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/30
2020
【愚公系列】2021年12月 通用职责分配原则(一)-信息专家原则(Information Expert Principle)
GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。
愚公搬代码
2022/12/01
4490
【愚公系列】2021年12月 通用职责分配原则(五)-控制器原则(Controller Principle)
GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。
愚公搬代码
2022/12/01
3050
【愚公系列】2023年11月 通用职责分配原则(一)-信息专家原则(Information Expert Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/29
2830
【愚公系列】2021年12月 通用职责分配原则(四)-高内聚原则(High Cohesion Principle)
GRASP:General Responsibility Assignment Software Patterns 通用职责分配软件模式。
愚公搬代码
2022/12/01
3070
【愚公系列】2023年11月 通用职责分配原则(四)-高内聚原则(High Cohesion Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/30
2410
【愚公系列】2023年11月 通用职责分配原则(二)-创造者原则(Creator Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/30
1980
【愚公系列】2023年11月 通用职责分配原则(五)-控制器原则(Controller Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/30
2220
【愚公系列】2023年11月 通用职责分配原则(三)-低耦合原则(Low Coupling Principle)
GRASP(General Responsibility Assignment Software Patterns)通用职责分配软件模式是一组用于面向对象设计的指导原则,旨在帮助设计者确定系统中各个类的职责和交互方式,以实现松耦合、高内聚的设计。
愚公搬代码
2023/11/30
1960
Gof23设计模式趣味详解(三分钟上手系列)
学习设计模式可以提高程序员的思维能力、编程能力和设计能力,从而使你写的代码可重用性更高、可读性更强、可靠性更高、灵活性更好、可维护性更强
bboy枫亭
2020/09/22
4210
推荐阅读
【愚公系列】2021年12月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
2730
【愚公系列】2023年11月 通用职责分配原则(八)-中介原则(Indirection Principle)
1900
【愚公系列】2021年12月 通用职责分配原则(七)-纯虚构原则(Pure Fabrication Principle)
3060
【愚公系列】2021年12月 通用职责分配原则(六)-多态原则(Polymorphism Principle)
2310
【愚公系列】2023年11月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
2410
【愚公系列】2021年12月 通用职责分配原则(九)-受保护变量原则(Protected Variations Principle)
3230
【愚公系列】2023年11月 通用职责分配原则(七)-纯虚构原则(Pure Fabrication Principle)
2110
【愚公系列】2023年11月 通用职责分配原则(九)-受保护变量原则(Protected Variations Principle)
2320
【愚公系列】2021年12月 通用职责分配原则(二)-创造者原则(Creator Principle)
3080
【愚公系列】2021年12月 通用职责分配原则(三)-低耦合原则(Low Coupling Principle)
2540
【愚公系列】2023年11月 通用职责分配原则(六)-多态原则(Polymorphism Principle)
2020
【愚公系列】2021年12月 通用职责分配原则(一)-信息专家原则(Information Expert Principle)
4490
【愚公系列】2021年12月 通用职责分配原则(五)-控制器原则(Controller Principle)
3050
【愚公系列】2023年11月 通用职责分配原则(一)-信息专家原则(Information Expert Principle)
2830
【愚公系列】2021年12月 通用职责分配原则(四)-高内聚原则(High Cohesion Principle)
3070
【愚公系列】2023年11月 通用职责分配原则(四)-高内聚原则(High Cohesion Principle)
2410
【愚公系列】2023年11月 通用职责分配原则(二)-创造者原则(Creator Principle)
1980
【愚公系列】2023年11月 通用职责分配原则(五)-控制器原则(Controller Principle)
2220
【愚公系列】2023年11月 通用职责分配原则(三)-低耦合原则(Low Coupling Principle)
1960
Gof23设计模式趣味详解(三分钟上手系列)
4210
相关推荐
【愚公系列】2021年12月 二十三种设计模式(十七)-中介者模式(Mediator Pattern)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档