随笔 - 17  文章 - 0  评论 - 378  阅读 - 87687

随笔分类 -  重构之路

重构的方法很多,在这里仅仅列出个人觉得比较有效的方法,结合项目实例,希望提高自我的同时,对各位也有帮助。
与继承相关的一些重构(二)
摘要:5.提取主类:提取一个基类,抽象出共有方法,比较常用的重构,这里的基类也许并不存在,需要自己新建立。 用法场景:当有一个类中的某个方法需要经常被其他的类调用的时候,说明这个方法重用率很高,可以考虑把它抽象出来,放到一个基类中。代码6.提取子类:将基类中的方法放到子类中,这里的子类也许并不存在,需要自己新建立。 用法场景:当基类中的某些方法并不是面向所有或者大多数类的时候,需要把这些方法下放到子类中... 阅读全文
posted @ 2010-07-22 15:52 Dennis.Yang 阅读(432) 评论(0) 推荐(0) 编辑
与继承相关的一些重构(一)
摘要:本问主要讲几个涉及到继承方面的重构,继承一般会涉及到抽象类,接口,我们通常把有相似Func的类提取同类项,也就是抽象出接口或者抽象类;这样做的好处不言而喻,可以方便的扩展,修改,维护子类的共有方法,属性,索引等等。使用基类不仅仅是把各个子类联系起来了,更是降低了各个子类间的耦合度,再次体现了面向接口、继承编程的思想。1.提升方法:指将方法向继承链的上层迁移的过程。用法场景:当子类A中的一个方法需要... 阅读全文
posted @ 2010-07-19 15:40 Dennis.Yang 阅读(614) 评论(0) 推荐(0) 编辑
必会重构技巧(五):划分职责
摘要:&g  划分职责:根据方法实现的逻辑来安排方法所在的类。  举例理解:这个重构的方法是对单一职责原则(SRP)的贯彻,在Coding的时候,我们不仅仅需要把方法中的逻辑单一化(主要使用 Extract Method),还要把类中的方法安置合理化。比如说有个Book()的类,那么对于Book的一些操作,如增加减少书,设置书的属性那可以交给这个类做;而如另一些方法,如买书,租书就可以交给Cus... 阅读全文
posted @ 2010-07-14 16:48 Dennis.Yang 阅读(701) 评论(4) 推荐(0) 编辑
必会重构技巧(四):提取工厂类
摘要:提取工厂类:使用一个简单工厂类来新建对象实例。举例理解:对于一个客户端事件,我们可能需要初始化一个对象实例,并调用其中的几个方法做一系列的操作。如果客户端事件经常需要扩展,那可能每次初始化的对象实例可能都是不同的,那么为了把这个初始化对象的动作封装起来,为了使这个行为更加便于维护,我们就需要把初始化对象的动作交给简单工厂类来统一完成。项目实例:做过一个小型的购物商城。其中有个需求简述如下:管理员可... 阅读全文
posted @ 2010-07-13 15:39 Dennis.Yang 阅读(684) 评论(2) 推荐(1) 编辑
必会重构技巧(三):提取接口
摘要:提取接口:当有多余一个类使用另外一个类中的方法时,可以考虑引入接口,解除这种依赖。举例理解:比如说类A中有个方法为Call(Type T),类B和类C中都有方法都要调用Call这个方法,那么我们推荐引入一个接口,这样传参时可以直接new一个接口,可以解除调用方法和实现方法之间的耦合关系。面向接口编程也算是OO中比较重要的吧。项目实例:一般而言在设计的时候,对于比较可能扩展的部分都会用接口或者是抽象... 阅读全文
posted @ 2010-07-12 15:32 Dennis.Yang 阅读(1649) 评论(2) 推荐(0) 编辑
必会重构技巧(二):使用多态替换条件
摘要:使用多态替换条件:指在进行类型检查和执行某些类型操作时,最好将算法封装在类中,并且使用多态来对代码中的调用进行抽象举例理解:看定义可能比较迷糊,其实说的简单一点,对于使用分支语句并且分支条件是和类型检查相关的程序段,如 if(type == typeof(TypeA)){...}else if(type == typeof(TypeB)){...},可以把{...}中的Code,尝试放到if的条件... 阅读全文
posted @ 2010-07-07 16:56 Dennis.Yang 阅读(1468) 评论(0) 推荐(1) 编辑
必会重构技巧(一):封装集合
摘要:封装集合:将集合中的某些方法封装起来,这些方法一般会牵扯到其他的逻辑。  举例理解:比如你给一个List<T>里面加一个对象的同时,可能还有一个计数器在计算List中对象的个数,我们不用暴露计数器,这样List.Add()和List.Remove()我们就可以封装起来了。  项目实例:我记得我有个项目需要不断的从数据库中读取User的Guid然后狂发Mail。开始的想法很简单,根据Wi... 阅读全文
posted @ 2010-07-02 15:29 Dennis.Yang 阅读(1035) 评论(1) 推荐(1) 编辑
重构之路系列-首篇之我对重构的看法
摘要:首先承认,我不是牛人,并且距牛人也差的很远。虽然有三年多的.Net开发经验和若干年的Front-End开发经验,但是对于.Net,当然也可以说是C#,了解的并不多。由于所在公司的原因,我在从第一家软件公司跳槽后基本就是处于吃老本的姿态。因为对于我现在的公司而言,项目的稳定性是第一位的,至于Project架构的如何合理,Code写的多美,设计模式用的多精妙,页面是不是标准化,我们的老大完全不Care... 阅读全文
posted @ 2010-07-01 20:50 Dennis.Yang 阅读(663) 评论(1) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示