2010年7月13日
摘要: 引子:某年某日,公司Web程序被注入,导致数据库一塌糊涂。CIO大怒,要求以后所有数据库的交互行为都只能用SP,于是乎,即使是没有任何参数的一条查询语句也必须去到DB中加一条SP...  项目实例:新入手一个项目,业务流程比较复杂,数据库交互很多,一条条的SP写的煞是烦人,尤其是在DAL中设置Command的Parameters,繁琐而又费眼睛,写多了很容易出错,因为不仅仅要考虑参数的个数,而且要... 阅读全文
posted @ 2010-07-13 18:23 dongpo 阅读(3382) 评论(0) 推荐(0) 编辑
摘要: 封装集合:将集合中的某些方法封装起来,这些方法一般会牵扯到其他的逻辑。  举例理解:比如你给一个List<T>里面加一个对象的同时,可能还有一个计数器在计算List中对象的个数,我们不用暴露计数器,这样List.Add()和List.Remove()我们就可以封装起来了。  项目实例:我记得我有个项目需要不断的从数据库中读取User的Guid然后狂发Mail。开始的想法很简单,根据Wi... 阅读全文
posted @ 2010-07-13 18:10 dongpo 阅读(257) 评论(0) 推荐(0) 编辑
摘要: 使用多态替换条件:指在进行类型检查和执行某些类型操作时,最好将算法封装在类中,并且使用多态来对代码中的调用进行抽象  举例理解:看定义可能比较迷糊,其实说的简单一点,对于使用分支语句并且分支条件是和类型检查相关的程序段,如 if(type == typeof(TypeA)){...}else if(type == typeof(TypeB)){...},可以把{...}中的Code,尝试放到if的... 阅读全文
posted @ 2010-07-13 18:03 dongpo 阅读(573) 评论(0) 推荐(0) 编辑
摘要: 提取接口:当有多余一个类使用另外一个类中的方法时,可以考虑引入接口,解除这种依赖。  举例理解:比如说类A中有个方法为Call(Type T),类B和类C中都有方法都要调用Call这个方法,那么我们推荐引入一个接口,这样传参时可以直接new一个接口,可以解除调用方法和实现方法之间的耦合关系。面向接口编程也算是OO中比较重要的吧。  项目实例:一般而言在设计的时候,对于比较可能扩展的部分都会用接口或... 阅读全文
posted @ 2010-07-13 17:58 dongpo 阅读(295) 评论(0) 推荐(0) 编辑
摘要: 提取工厂类:使用一个简单工厂类来新建对象实例。  举例理解:对于一个客户端事件,我们可能需要初始化一个对象实例,并调用其中的几个方法做一系列的操作。如果客户端事件经常需要扩展,那可能每次初始化的对象实例可能都是不同的,那么为了把这个初始化对象的动作封装起来,为了使这个行为更加便于维护,我们就需要把初始化对象的动作交给简单工厂类来统一完成。  项目实例:做过一个小型的购物商城。其中有个需求简述如下:... 阅读全文
posted @ 2010-07-13 17:47 dongpo 阅读(262) 评论(0) 推荐(0) 编辑