重构:提高代码的理解性、可观性和复用性,减少代码的重复性。(个人理解) 重构是一个连续性的过程,它发生在项目开发的各个阶段,但不要为了重构而重构(过度重构)。 大家可能觉得我写的这些都没什么技术含量,但我个人喜欢用最简单的方式说明一个[color=rgb(85, 85, 85) !important]问题,如果你已经知道这些方法,可以跳过,如果你还不知道,刚好可以普及一下留个印象。 下面给大家例举一些关于重构的方法,以下代码案例中我们的demo是不具有实际意义的,重在理解就行。
#region Demo 提升方法 ,提升字段 public class Person { } public class P1 : Person { private string name; public void Say(string msg) { Console.WriteLine("说话的内容:" + msg); } } public class P2 : Person { private string name; public void Say(string msg) { Console.WriteLine("说话的内容:" + msg); } } //重构 public class Person { protected string name; public void Say(string msg) { Console.WriteLine("说话的内容:" + msg); } } public class P1 : Person { } public class P2 : Person { } #endregion #region Demo 降低方法,降低字段 public class Animal { //是否在飞 protected bool isFlaying = false; public void Flay() { } } public class Brid : Animal { } public class Dog : Animal { } //重构 public class Animal { } public class Brid : Animal { protected bool isFlaying = false; public void Flay() { } } public class Dog : Animal { } #endregion #region 重命名方法,参数,字段等 public class Player { // private string nm; //改为 private string name; #region 当方法参数过多时:引入参数对象 public void SetPlayInfo(float _hp, float _attack, string _weaponName, string _animName, string _iconName) { } //改为 public void SetPlayInfo(PlayInfo _playInfo) { } #endregion } public class PlayInfo { public float HP { get; set; } public float Attack { get; set; } public string WeaponName { get; set; } public string AnimName { get; set; } public string IconName { get; set; } } #endregion #region 简单列举其他的重构方法 //1,判断分解:将复杂的条件判断进行分解。 //2,避免双重否定,提取方法,提取接口。 //3,提取父类,提取子类,移除重复,分离职责。 #endregion
|