我理解的重构(c#)

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">今天看到一篇应用接口的文章,主要是如何利用.net内置的功能,来重构代码,觉得有点意思,摘录其中的代码下来,以备将来参考。但是我与这篇文章的作者有同样的疑问,这样重构代码真的可以吗?是如何实现松耦合的呢?不知道有没有高手,可以指点一下?谢谢!</span>

首先是旧代码,如下:

<span style="font-size:18px;">public class ClassRegistration
     {
        public void Create()
         {
            // create registration code
         }
        public void Transfer()
         {
            // class transfer code
         }
        public decimal Total { get; private set; }
     }
    public class RegistrationProcessor
     {
        public decimal ProcessRegistration(ClassRegistration registration)
         {
             registration.Create();
            return registration.Total;
         }
     }</span>

重构以后的代码如下:

<span style="font-size:18px;">public interface IClassRegistration
     {
        void Create();
        decimal Total { get; }
     }
    public class ClassRegistration : IClassRegistration
     {
        public void Create()
         {
            // create registration code
         }
        public void Transfer()
         {
            // class transfer code
         }
        public decimal Total { get; private set; }
     }
    public class RegistrationProcessor
     {
        public decimal ProcessRegistration(IClassRegistration registration)
         {
             registration.Create();
            return registration.Total;
         }
     }</span>
时间: 2024-09-15 19:57:43

我理解的重构(c#)的相关文章

重构和单元测试

在接触程序后,经常会看到重构两个字,因为自己用不到,就没有取了解,今天在看书的过程中,看到了重构和测试,这才在网上百度一下.现在来说一下自己的理解,重构就是对程序代码添加或者修改,以提高程序代码的质量,性能,使程序的设计模式和架构更合理,提高软件的扩展性和维护性.为什么要重构,因为随着社会的进步,程序可能不能满足原来的需求,需要增加功能,这就可能违反当初的设计架构,可能带来bug和性能的缺失,这个时候就需要我们做一件事,重构,如果重构不能满足这个程序,可能就要重写了. 重构的目的,改进软件设计更

重构第4天:降低方法(Push Down Method)

理解:降低方法,就是把基类中的某个方法,提出来放到继承类当中去. 详解: 上一节我们讲了方法的提公,是把多于一个继承类都要用到的方法,提出来放到基类中去,来提高代码的可维护性和重用性.那么这一节,我们所讲述的正好相反.就是把基类中不常用的方法,或者只有某个继承类会用到的方法,踢出去,搬移到需要他的类中去,来让结构更清晰,提高代码的可读性. 重构前代码: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq;

重构培训有感

重构,对于一个工作刚刚满一年的我来说,本是一个陌生的概念.但好在,在参加本次培训之前,项目组内部已经开始对重构提起了重视,我也有幸读了<重构,改善代码的既有设计>这本书.其实,看过这本书的人可能都会有一个感觉,就是书中所概括的种种我们都知道,但是我们是否在意过这种细节,是否约束过自己,每个人心里都有一个答案吧.通过培训,还是对重构有了一个整体的认识. 我想,在重构之前,我们要明白为什么要对代码或者说软件进行重构.之所以要重构,是因为我们的软件中出现了这样或者那样的坏味道,具体的坏味道这里不做赘

《重构:改善既有代码的设计》 笔记 1

重构(名词):对软件内部结构的一种调整.目的是在不改变「软件之可察行为」前提下,提高其可理解性,降低其修改成本. 如果你发现自己需要为程序添加一个特性,而代码结构使你无法很方便地那么做,那就先重构那个程序,使特性的添加比较容易进行,然后再添加特性. 测试过程中很重要的一部分,就是测试程序对于结果的回报方式.它们要不说 "OK",表示所有新字符串都和参考字符串一样.要不就印出一份失败清单,显示问题字符串的出现行号.这些测试都属于自我检验self-checking).你必须让测试有能力自我

重构学习-重构原则

什么是重构: 视上下文重构有两个不同的定义,第一个定义是名词形式 对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提高其可理解性,降低其修改成本 重构的另一人用法是动词形式 使用一系列的重构手法,在不改变软件可观察行为的前提下调整其结构. 有人说重构就是整理代码 ,从某种角度上来说,是,但是重构不止于此,因为它提供了一种更为高效且受控的代码整理 技术,运用代码重构技术后你会发现对代码的整理会比以前更加高效. 重构的目的是使软件更容易被理解和侯.你可以在软件的内部做很多修改,但必须

机房重构之充值

最近机房重构一直在路上,心态已经从刚开始的无从下手到现在的照着葫芦画瓢.无论是三层还是七层,基本的思路都是一样的.最先最先的是写实体层,然后先写接口层的方法,然后就是D层去实现接口层的方法,接着就是工厂,B层,接着或者是外观层,然后是U层.由于我刚刚开始是按照一个窗体一个类来写的,并不是按照数据库中的表来写的,所以越来越觉得外观层没有用,毕竟B层就一个或者是俩个方法,敲着敲着就不写外观层啦. 我们在第一次VB版的机房时候已经知道了业务逻辑啦,知道了这些窗体先执行什么,后执行什么.拿充值窗体为例,

关于重构(二)

最近在看<重构改善既有代码设计>这本书,有些感悟分享给大家!!此感悟均自己瞎想,说的不对请见谅!! 这本书我已经看到第6章了,前5章可以简单的总结为:“为何重构?怎么重构?(重构的方法.原则)” 书中提及“事不过三.三则重构”,意思就是一个方法.函数用过3次或是多次就应该考虑重构了. 何时重构? 添加功能时:因为在某个功能基类可能在多个地方被用到,但客户有了写的需求,需要添加新的功能,但是你又不确定在基类中修改会不会影响其他的功能点,此时就应该重构. 修补错误时:这个情况和上述情况差不多,在修

重构点滴

重构点滴 2014-09-02 定义 意义 何时重构 重构与设计 补充 定义 返回 重构:在代码写好之后改进它的设计 重构(动词):使用一系列重构准则(手法],在不改变「软件之可察行为」前提 下,调整其结构. 意义 返回 「重构」使软件更易理解:「重构」改进软件设计:「重构」助你找到臭虫(bugs) 重构很像整理代码,所做的就是让所有东西回到应该的位置上,这使的代码更易理解.重构,消除重复代码,你就可以确定代码将所有事物和行为都只表述一次,惟一一次,这正是优秀设计的根本,这使的代码更易修改.在未

学习重构(1)-代码的坏味道

前言:最近做一个特性,参照原有逻辑增加某个功能,老代码本身存在两套相似的流程,再添加上一套流程后,发现代码的重复度及其的高,基本可以理解为一套框架流程复制出来3个类,给3个功能使用.我对比了每个类的代码后,发现代码重复度基本在50%以上,这种代码真是越写越烂的感觉.于是费力的做了一下重构,搞了个父类出来,抽取了大部分公共函数,整体代码看着就舒服多了.草草做了下重构后,突然觉得自己并不系统的知道要如何重构,只是知道些皮毛,又自我感觉良好的样子.翻出很久都没电的kindle,本想买本重构的书看,突然