在程序中用得最多的还是方法,在处理业务的系统中如何设计方法是一个很重要的问题。很多系统由于缺乏统一的约定而导致维护困难。本文主要介绍的是偶在平常的开发中总结出来的一些方法设计的思路。希望大家不嫌弃。

1.         简单的方法

void DoSth(args)
    {

// do some thing here

// throw some error here if the method was not run correctly 
    }

方法没有返回值,也没有特别的错误标示,一般用在一些不易出错的 所以如果方法有可能执行不成功的时候,则可以在方法里面抛出异常,在调用的地方用catch捕捉。或者根本不捕捉方法里面可能产生的异常,从而让异常跟着堆栈往上层爬,一直到合适的位置才进行捕捉。这种情况通常用于对方法中的异常没有十足的把握处理、不想在本方法中处理异常、有意向上层屏蔽底层异常的情况。很多设计这主张“底层抛出异常,上层处理异常”的设计原则,在这种设计原则的指导下,用的最多的方法设计就是这种。

以下的几种方法都要求尽量捕捉方法中可能存在的Exception。

2.         返回字符串/数字

string/int DoSth(args)
{

// do some thing here

// return some message if the method was not run correctly

}

执行某个方法,然后把结果用字符串/数字的形式返回,比如返回“OK”/1表示执行成功,返回“不能预料的错误”/-1等信息表示没有正确执行

3.         返回布尔值

bool DoSth(args)
{

// do some thing here

// return true or false to tell the caller if the method was run correctly

}

执行某个方法,然后把结果用bool值的形式返回,true表示执行成功,false表示执行失败。一般用在只关心结果,不在乎为什么是那个结果或者导致结果的原因已经很明确的时候。

4.         返回布尔值和错误信息

bool DoSth(args, out string message)
{

// do some thing here

// return true or false to tell the caller if the method was run correctly

// set the error message to “message” if exception or error occurred.

}

执行某个方法,然后把结果用bool值的形式返回,如果出错,将错误信息设置到一个out 的参数中。这种方法适合于那些比较复杂,可能出现多种意外的方法,执行中出现的意外可以通过message来查看,而结果可以通过返回值来查看。调用方可以只在乎结果,也可以在乎原因。

5.         两个方法合作(或者一个方法和一个属性合作的方法)

string errorMessage;

bool DoSth1(args)
{

// do some thing here

// return true or false to tell the caller if the method was run correctly

// set the error message to “errorMessage” if exception or error occurred.

}

bool DoSth2(args)

{

// do some thing here

// return true or false to tell the caller if the method was run correctly

// set the error message to “errorMessage” if exception or error occurred.

}

string GetLastError()
{
       return errorMessage;
}

方法本身只返回结果,但是当结果为false的时候,可以通过GetLastError来获取最后一个错误信息。这种设计适合于类里面存在很多可能出错的方法的情况,比如上面的DoSth1,DoSth2,这样就不必要为每个方法添加out参数,在实际中用得比较多。另外,当程序中存在循环,而又不想因为循环的某一次发生错误而终止程序的时候,也可以采取这种办法。

事实上,每一种方法都有其用武之地, 问题的关键在于我们使用一种约定,最好的办法就是在同一个系统里面尽量只使用其中的一种,以避免维护和后续开发上的麻烦。

转载于:https://www.cnblogs.com/QuitGame/archive/2005/06/30/183732.html

业务系统里面常见的方法接口设计相关推荐

  1. 重装系统大师计算机硬件不兼容,电脑重装系统能解决哪些问题?电脑重装系统后常见问题解决方法...

    对于重装系统这件事相信很多用户都不会感到陌生.电脑卡了?系统崩溃了?蓝屏黑屏?重装系统即可解决.那么重装系统可以解决哪些问题呢?重装系统后出现问题应该如何解决呢?下面就让小编为大家带来解答. 电脑重装 ...

  2. Django博客系统注册(图形验证码接口设计和定义)

    1. 准备captcha包(该包用于生成图形验证码) 1.将生成图片验证码的库复制到新建的libs包中. 2.安装Python处理图片的库 这儿可能会变红显示错误: 解决方案:在虚拟环境中安装Pill ...

  3. 请设计各种管理系统、业务系统的大哥大姐们,设计新系统时,拜托您,请允许我修改用户名、密码...

    大概在2-3年前,我在宁波最大的一家IT公司工作,我们公司日常开发人员经常会使用的系统有很多,夸张的 说接近10个吧,有些是自己公司开发的,有些是成熟的商品化软件,这些系统又由不同的维护人员维护,新员 ...

  4. 金蝶商贸版未获取到服务器信息,金蝶kis商贸版业务系统常见问题及解决方法2012...

    ①采购订单上为什么会有"关闭"标志 解决方法: 自动关闭:当采购订单关联生成的购货单数量大于等于订单数量时,订单自动关闭. 手动关闭:进入订单查询界面,手动点击[关闭]按钮. 注: ...

  5. 嵌入式系统中常见的摄像头接口

    MIPI CSI:MIPI CSI(Mobile Industry Processor Interface Camera Serial Interface)是一种专用于手机和移动媒体设备的摄像头接口标 ...

  6. 从0到1教你设计业务系统

    导读 本文将以一个案例,向读者逐步揭示一套业务系统从0到1的设计过程.重点讲述架构.模型等业务系统最本质的设计精要. 一.业务系统设计概述 1.什么是业务系统 互联网公司常常将产品方向分为两类,C端和 ...

  7. 如何从0到1设计业务系统

    本文以一个案例,向读者逐步揭示一套业务系统从 0 到 1 的设计过程.重点讲述架构.模型等业务系统最本质的设计精要. 业务系统设计概述 什么是业务系统 互联网公司常常将产品方向分为两类,C 端和 B ...

  8. 腾讯技术分享:微服务接口设计原则

    来源|腾讯技术工程(ID:Tencent_TEG) 本文结合自身后台开发经验,从高可用.高性能.易维护和低风险(安全)角度出发,尝试总结业界常见微服务接口设计原则,帮助大家设计出优秀的微服务. 1.前 ...

  9. 物联网智能硬件设备常见攻击方法

    以太网接入型设备,一般分为网线或WiFi两种.不管是WiFi还是网线,可以通过局域网抓包.笔记本WiFi桥接抓包等等手段. 最著名的抓包软件 Wireshark 如何抓取硬件设备的网络数据包,考量的是 ...

最新文章

  1. U-net进行图像分割
  2. odoo10 工作流、安全机制、向导
  3. 苹果市值盘中超2万亿美元,从1万亿到2万亿仅用时2年
  4. Beta版冲刺Day1
  5. mysql collectset_005.hive列转行 (collect_set() 去重)
  6. JAVA的System.out.println和System.out.printf之间有什么区别?
  7. 会计电算化的重要物质基础计算机和,湖北工业大学工程技术学院会计电算化管理办法...
  8. 第二十六期:HTTP 3的前世今生及尝鲜
  9. vscode 插件使用(前端力推)
  10. blender 3d打印_使用Blender和Python 3D打印连衣裙
  11. Vue computed 带参数
  12. 大工20春计算机文化基础在线测试2,大工20春《计算机文化基础》在线测试2
  13. Javascript中数组的sort方法的分析
  14. 购物车单选全选,计算总价,出现个小问题,没找到.....
  15. 取色器ColorPix
  16. 计算机网络基础知识总结,就这一篇了
  17. Oracle数据库练习题及答案(个人总结)
  18. 宁盾堡垒机双因素认证方案
  19. pycharm——python调用dubbo接口返回句柄无效(Connection dropped:socket connection error:句柄无效)
  20. 机器人螺栓拆装_一种带电作业机器人专用螺栓拆装固定装置的制作方法

热门文章

  1. 在wsl下运行c语言,在Windows10通过WSL架设linux/gcc c语言学习环境
  2. C++运算符与类型转换
  3. 安卓布局参数类LayoutParams
  4. 十二个生活习惯,增加你的心灵压力
  5. 解决:redis.clients.jedis.exceptions.JedisDataExceptionERR This instance has cluster support disabled
  6. Spring中的@scope注解
  7. Laravel 使用 Aliyun OSS 云存储
  8. 4、容器虚拟化网络概述
  9. Django加载静态文件
  10. hdu1540/poj2892 线段数区间合并