- OCP: Open-Closed Principle - ソフトウェアの構成要素は拡張に対しては開いていて、修正に対して閉じていなければならない - 変更の内容を予測するのではなく、変化しそうな部分を予測する