2022 iThome 鐵人賽
分享至
為了加入這個規則,會發現原本的方法全部都會被改到。那堆if-else都要重新加入新的狀態,可以看看違反了前面提到的哪些規則─ 沒有遵守開放/ 封閉原則,也沒有用到任何物件導向的特性,且狀態的轉換被埋沒在一堆if-else的陳述句中,該封裝的東西也沒被封裝,這種完全沒封好的設計就會導致新的規則加入後,可能直接讓原本的設計出現問題。因此,比較好的做法應該是把各個狀態各自歸為類別,讓各狀態實作自己的方法,可以這麼做:
依照前面的步驟,來進行實作:
IT邦幫忙