理解:方法提公,或者說把方法提到基類中。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 }
這樣作,減小代碼量,增長了代碼重用性和可維護性。重構