前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【愚公系列】2021年12月 通用职责分配原则(五)-控制器原则(Controller Principle)

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

作者头像
愚公搬代码
发布2022-12-01 09:40:10
2320
发布2022-12-01 09:40:10
举报
文章被收录于专栏:历史专栏历史专栏

文章目录


前言

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

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

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


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

一、控制器原则(Controller Principle)

(1)问题

谁应该负责处理一个输入系统事件?

(2)方案

把接收或者处理系统事件消息的职责分配给一个类。这个类可以代表:

整个系统、设备或者子系统; 系统事件发生时对应的用例场景,在相同的用例场景中使用相同的控制器来处理所有的系统事件。 (3)分析

一个控制器是负责接收或者处理系统事件的非图形用户界面对象。一个控制器定义一组系统操作方法。在控制器模式中,要求系统事件的接收与处理通常由一个高级类来代替;一个子系统需要定义多个控制器,分别对应不同的事务处理。通常,一个控制器应当把要完成的功能委托给其他对象,它只负责协调和控制,本身不完成太多的功能。它可以将用户界面所提交的请求转发给其他类来处理,控制器可以重用,且不能包含太多业务逻辑,一个系统通常也不能设计一个统一的控制器。控制器模式与MVC模式相对应,MVC是一种比设计模式更加高级的架构模式。

二、使用步骤

示例

代码语言:javascript
复制
public class HomeController : Controller {

    public IActionResult Index() {
        return View();
    }

    public IActionResult About() {
        ViewData["Message"] = "Your application description page.";

        return View();
    }

    public IActionResult Contact() {
        ViewData["Message"] = "Your contact page.";

        return View();
    }

    public IActionResult Privacy() {
        return View();
    }

    [ResponseCache(Duration = 0, 
        Location = ResponseCacheLocation.None, NoStore = true)]
    public IActionResult Error() {
        return View(new ErrorViewModel { 
            RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
    }

}

以上代码摘自微软 Asp.Net Core Web应用(MVC) 项目生成的默认模板。也是 Asp.Net MVC 开发的日常代码,意思过于简单,故不再赘述(zhuìshù)。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 前言
  • 一、控制器原则(Controller Principle)
  • 二、使用步骤
    • 示例
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档