理解:降低方法,就是把基类中的某个方法,提出来放到继承类当中去。
详解: 上一节我们讲了方法的提公,是把多于一个继承类都要用到的方法,提出来放到基类中去,来提高代码的可维护性和重用性。那么这一节,我们所讲述的正好相反。就是把基类中不常用的方法,或者只有某个继承类会用到的方法,踢出去,搬移到需要他的类中去,来让结构更清晰,提高代码的可读性。
重构前代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace _31DaysRefactor 7 { 8 public abstract class Animal{ 9 10 public void Bark() 11 { 12 13 //code to bark 14 } 15 } 16 17 18 public class Dog : Animal 19 { 20 21 } 22 23 public class Cat : Animal 24 { 25 26 } 27 }
比如 在基类中的方法Bark ,在继承类中,只有Dog类需要,因为只有狗才能叫狗吠。而Cat类根本不需要该方法。所以直接把Bark方法提到Dog类中去,让结构更清晰,更容易理解。
重构后的代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 6 namespace _31DaysRefactor 7 { 8 public abstract class Animal{ 9 10 11 } 12 13 14 public class Dog : Animal 15 { 16 public void Bark() 17 { 18 19 //code to bark 20 } 21 } 22 23 public class Cat : Animal 24 { 25 26 } 27 }
当然,这些是简单的重构方法,什么时候该用什么时候不该用,都要视具体情况决定,也不能一味的乱用。