分开变与不变的代码

在处理文件时,我们希望写出的代码是健壮的。如果一个长时间运行的文件处理程序对文件的操作没有做到健壮性就会出现一些问题。

比如一个HTTP服务器,它主要是把文件打开然后读取其中的内容,发送到请求者。如果一旦网络连接出问题,从而导致正在传输的文件没有关闭,那么想修改这个文件的内容我们只能重启这个HTTP服务器了。

为了写出健壮的文件处理代码,一般我们都会用到try-catch-finally语句块:

1FileStream file = null;
2try
3{
4  file = new FileStream(path, mode, access);
5  //do something
6}
7catch (IOException e)
8{
9  throw e;
10}
11finally
12{
13  if (file != null)
14  {
15    file.Close();
16  }
17}

如果你的代码中充满了这种模式的代码是不是会觉得很烦人呢?如果要是读取一个文件的内容,可能真正有用的代码仅仅是几行代码而已。而为了健壮性,我们却要写上10行多的代码来处理异常和关闭文件。

是不是想到了对这些模式性的代码进行封装呢?不错!为了能少写点代码,对其进行封装是件好事,而且我们还可以集中处理这种模式性的代码。至于思路来说,我们把变化的内容作为方法的参数即可。在封装这种操作时处理变化的代码我们使用代理。

对这种模式性的操作封装起来也并不困难。

首先我们需要一个代理,这个代理包含了一个FileStream类型的参数:

delegate void ProcessFileStreamCallback(FileStream file);

虽然这个代理的名字很长,不过我们可以使用匿名函数来少打一些字。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 封装
, 代码
, 处理
, 一个
, 封装性
健壮
就算分开一生不变、修改网页代码刷新不变、左侧不变 右侧变 代码、亘古不变、一成不变,以便于您获取更多的相关知识。

时间: 2025-01-01 22:14:18

分开变与不变的代码的相关文章

网站网页变灰的网页代码怎么实现?

文章简介:四川雅安芦山发生7.0级别大地震,不少网站首页已经变成了灰色表示哀悼.下面笔者整理了几种让网页变灰色的CSS代码,供各位站长参考! 4月21日全国哀悼日网页变灰色的CSS代码 http://www.webjx.com/css/divcss-23270.html  四川雅安芦山发生7.0级别大地震,不少网站首页已经变成了灰色表示哀悼.下面笔者整理了几种让网页变灰色的CSS代码,供各位站长参考! 方法1:支持IE <!DOCTYPE html PUBLIC "-//W3C//DTD

让网站变灰的css代码

 四川雅安芦山发生7.0级别大地震,不少网站首页已经变成了灰色表示哀悼.下面笔者整理了几种让网页变灰色的CSS代码 方法1:支持IE <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1

jquery点击按钮后变灰实现程序代码

下面是我以前用的一个js倒计时的效果,也是点击之后60秒之内不可再点击效果.  代码如下 复制代码 <html> <head> <title>点击获取验证码按钮后按钮变灰,倒计时一段时间后又可重复点击</title> </head> <body> <input type="button" id="btn" value="免费获取验证码" /> <script

javascript网页变模糊的特效代码

 代码如下 复制代码 <![if !IE]> <script> /* * by moli */ $(document).ready(function(){ if(document.cookie.indexOf(->lu=->) == -1 ){ // 延时2秒 setTimeout(->jQuery.mxblur.interID = setInterval('jQuery.mxblur.begin()', 5)->, 1500); } });   $.mxb

网页变黑白代码(让FLASH也变黑)

文章简介:使网页所有元素变灰的代码,包括FLASH,只支持IE. 网站网页变灰的网页代码怎么实现:http://www.webjx.com/css/divcss-33559.html 4月21日全国哀悼日网页变灰色的CSS代码: http://www.webjx.com/css/divcss-23270.html  使网页所有元素变灰的代码,包括FLASH,只支持IE: 第一种方法:把下面的代码加入网页的<head>与</head>之间: <style type="

BCB中用Sender参数实现代码重用

面向对象的编程工具的特点之一就是要提高代码重用性(Reuse),宝兰的BCB当然可以实现这一功能.我们都知道,在BCB中,大部分程序代码都直接或间接的对应着一个事件,此程序称为事件处理句柄,它实际上就是一个过程.从应用程序的工程到窗口.组件和程序,BCB强调的是其开发过程中每一层次的重用性,可以充分利用已编写过的代码来减少工作量,更会使你的程序变得优美.代码段间的共享都跟发生该事件的控件有关有关,需要根据控件类型做出相应的处理,这时就要用到Sender参数. 每个函数的开头都有形如: void

flash as3获取php的变量值实现方法

HP代码 (test1.php): 不推荐写成这种含html代码的形式:  代码如下 复制代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

唱吧DevOps的落地,微服务CI/CD的范本技术解读----最大的难点并不是实际业务代码的编写,而是服务的监控和调试以及容器的编排

1.业务架构:从单体式到微服务 K歌亭是唱吧的一条新业务线,旨在提供线下便捷的快餐式K歌方式,用户可以在一个电话亭大小的空间里完成K歌体验.K歌亭在客户端有VOD.微信和Web共三个交互入口,业务复杂度较高,如长连接池服务.用户系统服务.商户系统.增量更新服务.ERP等.对于服务端的稳定性要求也很高,因为K歌亭摆放地点不固定,很多场所的运营活动会造成突发流量. 为了快速开发上线,K歌亭项目最初采用的是传统的单体式架构,但是随着时间的推移,需求的迭代速度变得很快,代码冗余变多,经常会出现牵一发动全

22. WebAR那些事: 20行代码做全景

紧接上文 AR技术,全称增强现实技术,对已有的现实世界,增加一些虚拟元素,提升用户体验.传统的内容展示无非于:图片.文字.视频等组合,随着经济.技术的发展,越来越多的用户已经不满足于现状,目前需要的是消费升级.体验升级,那么AR.VR技术运用而生. 本次Demo所需二维码 本次demo已经集成到APK中,用户可以点击<全景>来体验. AR全景 环境准备 Demo使用r82版本,向下兼容 Three.js 到http://www.threejs.org下载最新源码,这里使用three.min.j