一個好的設計有以下優點:1.Testing. (容易測試)2.Porting. (容易移植到其他平台)3.Maintenance (容易後續維護)4.Extension (容易增加新功能)5.Reorganization (容易重新組織)6.Understanding (容易了解的程式碼)