怎么向百度提交网站地图,5g影视,网站推广律师关键词有哪些,广州城乡建设部网站首页摘要#xff1a;由于最近在做重构的项目#xff0c;所以对重构又重新进行了一遍学习和整理#xff0c;对31天重构最早接触是在2009年 10月份#xff0c;由于当时没有订阅Sean Chambers的blog#xff0c;所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整… 摘要由于最近在做重构的项目所以对重构又重新进行了一遍学习和整理对31天重构最早接触是在2009年 10月份由于当时没有订阅Sean Chambers的blog所以是在国外的社区上闲逛的时候链接过去的。记得当时一口气看完了整个系列并没有多少感觉因为这些基本上项目都 在使用只是我们没有专门把它标示和整理出来所以也没有引起多大的重视。现在突然接手这个重构项目由于团队成员技术和经验参差不齐所以有必要专门整 理一个重构的纲要当然这个系列也非常适合做新系统的代码规范参考只要有代码的地方这个重构规范就很有价值。周末也不想出去闲逛因为在刚到这个美丽 的城市没有亲戚或者朋友所以才能静下心来两天时间写完这个重构参考规范。同时也感受了Windows Live writer写文章的快感。当然重构的整体架构得另当别论整体架构在我的这篇文章有专门的讲解http://www.cnblogs.com/zenghongliang/archive/2010/06/23/1763438.html。 大的架构设计好了以后这些重构细节点就成了东风之后的大火对整个项目也是至关重要。31天重构这个系列和《代码大全》、《重构改善既有代码的设计》 比较起来最大的特点就是比较简单、浅显易懂。那么我这些文章也都是学习Sean Chambers的31天重构的笔记整理所以如果大家对这个笔记有任何异议也可以指出。 具体也可以通过http://www.lostechies.com/blogs/sean_chambers/archive/2009/07/31/31-days-of-refactoring.aspx查 看原文。 概念本文中的”为布尔方法命名”是指如果一个方法带有大量的bool 参 数时可以根据bool 参数的数量提取出若干个独立的方法来简化参数。 正文我们现在要说的重构并不是普通字面意义上的重构它有很多值得讨论的地方。当一个方法带有大量的bool 参数时会导致方法很容易被误解并产生非预期的行为 根据布尔型参数的数量我们可以决定提取出若干个独立的方法来。具体代码如下 using LosTechies.DaysOfRefactoring.BreakResponsibilities.After;namespace LosTechies.DaysOfRefactoring.SampleCode.RenameBooleanMethod.Before
{public class BankAccount{public void CreateAccount(Customer customer, bool withChecking, bool withSavings, bool withStocks)
{// do work}
}
} 我们可以将上面的bool参数以独立方法的形式暴露给调用端以提高代码的可读性同时我们还需要将原来的方法改为private以限制其可访问性。显然我们关于要 提取的独立方法会有一个很大的排列组合这是一大缺点所以我们可以考虑引入”参数对象“重构。 using LosTechies.DaysOfRefactoring.BreakResponsibilities.After;namespace LosTechies.DaysOfRefactoring.SampleCode.RenameBooleanMethod.After
{public class BankAccount{public void CreateAccountWithChecking(Customer customer)
{
CreateAccount(customer, true, false);
}public void CreateAccountWithCheckingAndSavings(Customer customer)
{
CreateAccount(customer, true, true);
}private void CreateAccount(Customer customer, bool withChecking, bool withSavings)
{// do work}
}
} 总结 ”为布尔方法命名“这个重构在很多时候都不常用如果用户的参数可枚举我们一般会枚举它的值不过使用这种重构也有好处就是分解开来以后方法多了 参数少了代码维护起来方便了一些。 本文转自KnightsWarrior51CTO博客原文链接http://blog.51cto.com/knightswarrior/342486 如需转载请自行联系原作者