首页 > 编程语言 >C#入门:如何合理制定方法参数

C#入门:如何合理制定方法参数

时间:2023-10-27 12:23:53浏览次数:29  
标签:功能 界面 入门 C# 控制器 查询 参数 行为 范围

1、利用面向对象的原则,将我们面对的功能拆分出相关类

2、相同功能只应出现在一个类中。

3、相似功能尽量提取其公共部分

总的目标可以简化为精减代码量。

我们以一个动态条件查询界面来说明一下上面几点

 这是一个病案查询功能,左则的列表是所有可供选择的字段,中间是用户要求查询的字段,右侧的某一个查询字段的条件。

组织这个界面功能要用到哪几个类呢?

结果不是唯一的,每个人都可以有自己的想法。但我认为,组织一个更多人容易理解的方式应该是我们的目标。

首先浮现我们脑子的,应该是两个对象:所有的字段字段查询范围

研究一下所有字段的规则,更多时候应该跟客户面对面的聊。我们发现部分字段使用相同的查询范围录入界面。
所以这里似乎隐藏了一个字段类型。就是某一类的字段的行为是一致的,界面录入、条件生成等行为是一致的。

字段查询范围、字段类型都很容易让人想到这两个是字段的属性,而不是构造主要元素的功能对象。

是的,从名字来看就很容易让人迷惑。但如果我将名字换成“查询范围”、“行为控制器”,你可能会明白我的用意。

 

三个对象:字段、查询范围、行为控制器

左侧显示就是所有“字段”,中午显示的是所有的“查询范围”,行为控制器必然是一个接口,让主程序可以优雅的处理N种情况。

 这个主程序就可以应对N种字段的显示

标签:功能,界面,入门,C#,控制器,查询,参数,行为,范围
From: https://www.cnblogs.com/kevin-Y/p/17792071.html

相关文章

  • Anaconda在Windows上安装后终端指令不生效
    查看环境变量是否已经配置好;环境变量配置好应该是"Scripts"文件夹作为conda指令的根目录而不是别的,例如,我的环境变量配置路径如下:C:\Users\ezhar\anaconda3\Scripts......
  • Anaconda环境备份
    在Windows电脑上,为了避免系统崩溃,或是为了将相同的环境拷贝到其它电脑上在装好Anaconda环境之后克隆并使用,可以将.conda文件夹全盘打个压缩包存起来,再到另一个电脑上将它们与新装的替换掉。例如,我的路径是C:\Users\ezhar\.conda,我就直接把这个文件夹压缩了一下,实现备份。......
  • 配置scaa
    安装依赖npminstallsass-loader-Snpminstallstyle-loader-Snpminstallsass-Svite.config.js配置exportdefaultdefineConfig({ plugins:[vue()],//这个是配置scss pluginOptions:{ 'style-resources-loader':{ preProcessor:'scss', patt......
  • docker: Error response from daemon: Conflict. The container name "/web" is alrea
    问题:docker启动docker容器时报错docker:Errorresponsefromdaemon:Conflict.ThecontainernameisalreadyinusebycontainerYouhavetoremove(orrename)thatcontainertobeabletoreusethatname.解决办法:在此之前已经启动了相同名字的docker容器,Thecontai......
  • EF出现错误:An error occurred while updating the entries. See the inner exception
    问题:EF出现错误Anerroroccurredwhileupdatingtheentries.Seetheinnerexceptionfordetails场景:适用Excel批量导入数据时,提示了以上错误解决思路:1、查看是否有重复的主键2、是否有不可为空的字段没有赋值3、字段内容是否超出长度限制......
  • Fabric.js 自定义控件
    本文简介带尬猴,我是德育处主任虽然Fabric.js提供的基础功能已经很丰富了,但有时难免需要定制一些需求。比如本文要讲的『自定义控件』。掌握创建自定义控件这个功能,能够创建更加精美和实用的图形应用程序,提高用户体验和用户满意度。尽管Fabric.js的文档很一般,但demo还挺......
  • stm32cubeide+bootloader跳转的方法和坑点
    网上介绍方法很多,跳转原理可以看这一篇  基于STM32的简易Bootloader实现-JiuLiBlog-博客园(cnblogs.com)大概步骤为:先判断栈顶地址是否合法,再关闭总中断和systick中断,再设置跳转地址、再加载栈顶地址,然后就可以跳转了,跳转后的应用程序需要先设置栈顶地址、再开启之前关闭......
  • docker如何停止容器(docker如何停止容器进程)
    https://www.yzktw.com.cn/post/1303236.htmlDocker是一款流行的容器化平台,它允许用户创建、部署和运行容器。在使用Docker时,您可能需要停止容器以进行维护或其他操作。下面我们介绍几种停止Docker容器的方法。方法一:使用dockerstop命令dockerstop[容器名/容器id]这个命令......
  • jquery onbeforeclose
    可以关闭子窗口后,直接刷新父页面。https://www.yzktw.com.cn/post/1124679.html 在前端开发中,我们经常需要处理浏览器的关闭事件。而jquery中提供了一个onbeforeclose方法来帮助我们处理这个事件。$(window).on("beforeunload",function(){//在这里编写需要执行的代码})......
  • TCP/IP协议族面面观
    TCP/IP协议族介绍及在C#中的使用什么是TCP/IP协议族?TCP/IP协议族是互联网最基本的网络协议族,它定义了互联网上设备之间进行通信的规范。TCP/IP协议族由多个协议组成,每个协议都有不同的功能和用途,下面我们将介绍其中一些常用的协议。TCP/IP协议族中的常用协议1.IP协议Interne......