以ASP.NET為例子來說明重構的過程,從一開始用web自動測試,然後註解、重構擷取方法、抽象、類別職責分離、單元測試、行為抽象介面、到以patterns來重構。
重構的程式碼,從v0到v8,請見:https://gist.github.com/2167459