返回列表 发帖

31天重构学习笔记15. 移除反复内容 - 圣殿骑士 - 博客园

using System;namespace LosTechies.DaysOfRefactoring.RemoveDuplication.After{    public class MedicalRecord    {        public DateTime DateArchived { get; private set; }        public bool Archived { get; private set; }        public void ArchiveRecord()        {            SwitchToArchived();        }        public void CloseRecord()        {            SwitchToArchived();        }        private void SwitchToArchived()        {            Archived = true;            DateArchived = DateTime.Now;        }    }}
总结:这个重构很简单,博彩网,绝大多数程序员都会使用这种重构办法,但有时由于习惯、时间、赶进度等原因此疏忽它,所以会使得整个系统横七竖八,到处都是Ctrl+C和Ctrl+V的痕迹。
详细也能够通过查看原文。
注释:如下代码所示,ArchiveRecord和CloseRecord都会用到Archived = true; 和DateArchived = DateTime.Now; 这两条语句,所以我们就可以对它进行重构。
概念:本文中的“移除反复内容”是指把一些良多地方都用到的逻辑提炼出来,然后提供应调用者统一调用。
using System;namespace LosTechies.DaysOfRefactoring.RemoveDuplication.Before{    public class MedicalRecord    {        public DateTime DateArchived { get; private set; }        public bool Archived { get; private set; }        public void ArchiveRecord()        {            Archived = true;            DateArchived = DateTime.Now;        }        public void CloseRecord()        {            Archived = true;            DateArchived = DateTime.Now;        }    }}
重构后的代码如下所示,咱们提炼了SwitchToArchived方式来封装公用的操作,博彩网站,而后给ArchiveRecord跟CloseRecord同一调用。
摘要:因为最近在做重构的项目,所以对重构又从新进行了一遍学习和整顿,对31天重构最早接触是在2009年10月份,因为当时没有订阅的blog,所以是在国外的社区上闲逛的时候链接从前的。记切当时一口吻看完了全部系列并没有多少感到,由于这些基础上项目都在应用,只是我们没有专门把它标示和整理出来,所以也不引起多大的器重。当初忽然接手这个重构名目,由于团队成员技巧和教训错落不齐,所以有必要专门收拾一个重构的纲领,当然这个系列也十分合适做新体系的代码标准参考,只有有代码的处所,这个重构规范就很有价值。周末也不想出去晃荡,因为在刚到这个漂亮的城市,没有亲戚或者友人,所以才干静下心来两天时光写完这个重构参考规范。同时也感触了Windows Live writer写文章的快感。当然重构的整体架构得另当别论(整体架构在我的这篇文章有专门的讲授()。大的架构设计好了当前,这些重构细节点就成了春风之后的大火,对整个项目也是至关主要。31天重构这个系列和《代码大全》、《重构:改良既有代码的设计》比拟起来最大的特色就是比较简略、浅易易懂。那么我这些文章也都是学习Sean Chambers的31天重构的笔记整理,所以假如大家对这个笔记有任何异议也可以指出。

返回列表