重構第3天:方法提公(Pull Up Method)

理解:方法提公,或者說把方法提到基類中。spa

詳解:若是大於一個繼承類都要用到同一個方法,那麼咱們就能夠把這個方法提出來放到基類中。這樣不只減小代碼量,並且提升了代碼的重用性。code

看重構前的代碼:blog

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace _31DaysOfReflactor
 7 {
 8     public abstract class Vehicle
 9     {
10         // other methods
11     }
12 
13     public class Car : Vehicle
14     {
15         public void Turn(Direction direction)
16         {
17             // code here
18         }
19     }
20 
21     public class Motorcycle : Vehicle
22     {
23     }
24 
25     public enum Direction
26     {
27         Left,
28         Right
29     }
30 }

咱們能夠看出來Turn 轉彎 這個方法,Car須要,Motorcycle 也須要,小車和摩托車都要轉彎,並且這兩個類都繼承自Vehicle這個類。因此咱們就能夠把Turn這個方法繼承

提到Vehicle這個類中。io

重構後的代碼以下:class

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace _31DaysOfReflactor
 7 {
 8     public abstract class Vehicle
 9     {
10         public void Turn(Direction direction)
11         {
12             // code here
13         }
14     }
15 
16     public class Car : Vehicle
17     {
18        
19     }
20 
21     public class Motorcycle : Vehicle
22     {
23     }
24 
25     public enum Direction
26     {
27         Left,
28         Right
29     }
30 }

這樣作,減小代碼量,增長了代碼重用性和可維護性。重構

相關文章
相關標籤/搜索