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

Posted IT少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重构第4天:降低方法(Push Down Method)相关的知识,希望对你有一定的参考价值。

理解:降低方法,就是把基类中的某个方法,提出来放到继承类当中去。

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

重构前代码:

 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 }

当然,这些是简单的重构方法,什么时候该用什么时候不该用,都要视具体情况决定,也不能一味的乱用。

 

以上是关于重构第4天:降低方法(Push Down Method)的主要内容,如果未能解决你的问题,请参考以下文章

重构第9天:提取接口(Extract Interface)

重构第10天:提取方法(Extract Method)

重构第5天:提升字段(Pull Up Field)

第二阶段第三次

重构此方法以将其认知复杂度从 16 降低到允许的 15。如何重构和降低复杂度?

代码重构规范