開放閉鎖原則
ソフトウェア要素(クラス、モジュール、関数など)は、拡張に対しては開いており、修正に対しては閉じているべきである。 software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification
この原則に従っていれば、ソースコードの修正をせずとも、各要素の振る舞いを拡張することが可能になるとしている。
どういうこと?そんなことできんの?設定ファイルで制御するってこと?sta.icon
私「逆に、更新対象が増えてもメソッドを追加しなくてもいいのが修正に対して閉じてるのね」
私「じゃあ、店舗ユーザーを増やしたいってなった時は、店舗ユーザークラスの作成とコントローラーへの追記だけでOKってことだよね?」
ああ、インスタンス増やすだけで済むようにするってことかsta.icon
だよな。コード全く書かずに拡張可能にするって言ってるのかと思った
ソフトウェアを構成する個々の部品は、拡張に対して開いていて(Open)、修正に対して閉じている(Closed)べきであるという原則。つまり、ソフトウェアに新しく機能を追加するとき、既存のコードを変更せず新しいコードを追加するだけで済むようにしておくべきであるという意味。
わかりやすい。優勝sta.icon
Gitの差分でいえばChangeなしにAddだけがある状態ってことだなsta.icon
いや違うわ
たとえばswitch文に新しい条件分岐を追加するという簡単な修正であっても、breakの書き忘れですでに動作しているコードが動作しなくなってしまう可能性がある。
新しい機能を追加する際は、既存のコードを修正しなくてもいいようにしておくべきである。
行の変化だけではわからないね。失敬。sta.icon