作者:独嘉 时间:2014-06-23概述为了增加程序的可扩展性,以及降低后期维护的成本,在MAC TT的开发后期,我决定重构TT的网络层。重构之后的网络层实例化了网络请求,这样有一个好处就是方便维护网络请求的生命周期。每一个网络请求都把自己的数据打包和解包封装起来。换一种说法就是每个网络请求都是....
分类:
其他好文 时间:
2014-06-25 22:42:14
阅读次数:
347
机房重构马上就要结束了,在这“第三个”系统结束的时候,有必要思考一下我们重构的目的了。
也许有人说,还有什么目的呀,不就是编程语言换成了.Net,做出来,调完bug,能运行就得了呗。这么浮夸的日子里,还叫什么劲啊?
对于有这种想法的人,我必须道一声:您(白)辛苦了 !
无论做什么事,没有一点总结性思考是无法进步的。...
分类:
其他好文 时间:
2014-06-25 19:39:43
阅读次数:
143
设计模式六大原则(6):开闭原则定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变化...
分类:
其他好文 时间:
2014-06-25 17:47:16
阅读次数:
130
可能是我们共同的强迫症,不要说看到,就算想到太多的try-catch也很难接受。于是,开始了一些尝试,这些尝试都算是思维的锻炼、场面的见识、经验的积累。Version1 —— 原始版本一开始,在ConcreteService中,拥有了太多的try-catch,而影响码字的兴趣。代码1 原始代码///...
分类:
其他好文 时间:
2014-06-25 13:41:09
阅读次数:
169
历经n多天,组合查询模板终于做完了,总结一下这几天的成果,和大家一起学习交流。
先看一下父窗体的关键代码:
父窗体代码:
Public Class frmComboQuery
Protected Overridable Sub frmComboQuery_Load(sender As Object, e As EventArgs) Handles MyBase.Load
...
分类:
其他好文 时间:
2014-06-25 00:20:41
阅读次数:
323
机房收费系统重构,详细说明重构各个层的由来以及构建建议。...
分类:
其他好文 时间:
2014-06-24 22:28:10
阅读次数:
258
重构机房的时候用到了单例模式,在这里稍稍回顾一下。
单例模式,顾名思义就是一个类只有一个实例,在机房收费系统中,主要是才子窗体实例化的时候用到。如果没有使用单例模式时代码是这样的:
Private Sub 修改密码ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles 修改密码T...
分类:
其他好文 时间:
2014-06-24 21:31:32
阅读次数:
299
在任何一个项目中,我们必须要用到的就是用户登录,那么就少不了用户是否登录的判断,如果我们每一个请求都要去做一次判断,那么就会变得很麻烦,但我们复制粘贴的时候我们就要考虑我们的代码写的是不是有问题,是不是可以重构一下,这里借鉴一下项目中的这种模式:package interceptor;import ...
分类:
编程语言 时间:
2014-06-24 18:59:45
阅读次数:
297
原文地址:http://www.refactoring.com/catalog/moveMethod.html在类A中,当一个方法正在用,或者将要用到的功能和资源大部分存在于另一个类B中,而非A类中时,这时我们要考虑把这个方法移到B类中去。举一个例子: 1 class Project { 2 P.....
分类:
移动开发 时间:
2014-06-24 15:24:08
阅读次数:
289
在一些情况下,在一个类中选择不去暴露整个集合给调用者是非常有必要的。比如当我们给一个集合添加/删除item时,我们需要添加一些额外的逻辑。因为这个原因,一个非常好的办法就是让暴露出来的collecction只能被迭代而不能被修改。让我们看下面的例子。public class Order{ pr...
分类:
其他好文 时间:
2014-06-24 12:37:24
阅读次数:
173