はじめに 社内で設計の勉強会を行った際に、前提であるSOLID原則 特にオープンクローズドの原則について理解が必要だと再確認したので、今回記事にまとめます。 分かりやすいように具体例とコードを交えて説明します。 オープンクローズの原則とは SOLID原則の1つのOpen Closed Principleのことである。 ソフトウェアの構成要素は拡張に対して開かれていて、修正に対して閉じていなければならないという原則です。 拡張に対して開かれている 機能の拡張 新たなコードを追加することで機能を拡張することができる 修正に対して閉じている 修正は機能を拡張するための既存コードの修正 拡張によって既存コードが修正されない つまり...ソフトウェアのふるまいは既存の成果物を変更せずに、 拡張できるようにするべきということです。 ただ、これだけでは具体的なイメージが湧きにくいので、 具体例を挙げます
![【SOLID原則】オープンクローズドの原則とは - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/c693cbba6a18918adfd4b38935becaffba5ede3f/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Fengineer-festa-ogp-background-074608b13b4bbe67c10ada41e7e2d292.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUUzJTgwJTkwU09MSUQlRTUlOEUlOUYlRTUlODklODclRTMlODAlOTElRTMlODIlQUElRTMlODMlQkMlRTMlODMlOTclRTMlODMlQjMlRTMlODIlQUYlRTMlODMlQUQlRTMlODMlQkMlRTMlODIlQkElRTMlODMlODklRTMlODElQUUlRTUlOEUlOUYlRTUlODklODclRTMlODElQTglRTMlODElQUYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyM0ZGRkZGRiZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWYzMzk3N2Q4MWUyNTMwMTg5MzcyMTVkN2NkNWQ4NWY3%26mark-x%3D120%26mark-y%3D96%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9OTcyJnR4dD0lNDBraW1fdDA4MTQmdHh0LWNvbG9yPSUyM0ZGRkZGRiZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPThhYWVhMDQ1YmYxYzJhNjgwZjEwNWMzMTI5NGE4YzFk%26blend-x%3D120%26blend-y%3D445%26blend-mode%3Dnormal%26txt64%3DaW4gUWlpdGHmoKrlvI_kvJrnpL4%26txt-width%3D972%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523FFFFFF%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D134%26txt-y%3D546%26s%3D4d45f4ec24b873bfbbac70046268c86a)