這個重構方法其實就是說把類的介面抽取出來,參數傳遞的時候以介面而不是具體的類
個人理解這就是面向介面的編程思想吧,有哪位達人知道的請告知一下
例子很簡單,舊代碼:
Codepublic class ClassRegistration{public void Create(){// create registration code}public void Transfer(){// class transfer code}public decimal Total { get; private set; }}public class RegistrationProcessor{public decimal ProcessRegistration(ClassRegistration registration){registration.Create();return registration.Total;}}
重構後的代碼:
Codepublic interface IClassRegistration{void Create();decimal Total { get; }}public class ClassRegistration : IClassRegistration{public void Create(){// create registration code}public void Transfer(){// class transfer code}public decimal Total { get; private set; }}public class RegistrationProcessor{public decimal ProcessRegistration(IClassRegistration registration){registration.Create();return registration.Total;}}
我們將ClassRegistration 類的兩個方法Create() ,Transfer() 抽取出來建立成IClassRegistration介面
在ProcessRegistration這個方法中就可以不依賴具體的ClassRegistration 類,而只需要傳IClassRegistration 介面就可以了
這樣就可以享受到松耦合帶來的好處了