オブジェクト指向プログラミング
オブジェクト指向設計原則 SOLID 原則について学ぼう
今日の投稿は情報処理技師の勉強中に投稿したら良さそうなテーマがあり持ってきました。 それがオブジェクト指向設計原則です。各原則の頭文字を取ってSOLIDとも呼ばれています。 この原則は多くのオブジェクト指向言語だけでなく、ウェブフレームワークのSpringでも核心原理として作用するため、プログラマーが知っておくと非常に役立ちます。 面接の場でもいいですね 1. 単一責任原則 (SRP, Single Responsibility Principle) クラスを設計する際に、一つのクラスはただ一つの責任だけを持たなければならないという原則です。 責任という言葉が少し曖昧かもしれませんが、単純に説明すると、機能の変更や、修正が発生したときに影響を受ける範囲と考えると分かりやすいです。 一般的に責任という言葉は誰かが間違った行為をしたときにそれを正すために_「誰が責任を取るべきだ!」_ とよく使いますよね。 それと同じだと思えばいいです。 単一責任の原則は、その責任において一つの事物を担当するクラスは一つの責任を負うべきであるということです。 プログラマーなら当然クラスという言葉は聞いたことがありますよね? クラスとは一つの事物の同一の属性や行為の集合を指します。 これは特定のクラスが2つ以上の責任を持っていると問題になるからです。 例を挙げてみましょうか? 車両クラスに車両の販売情報と、車両の動作原理を入れたとき、車両価格を変更すると車両動作原理を参照するクラスにも必然的に影響を及ぼすことになります。 また、車両動作原理を使用するクラスがあるとき、車両の動作に無用な情報(販売情報)が付加的に含まれているため、不要な要素を引き受けることになりますよね? これは誰が見ても良い設計とは言えません。 このような不祥事を防ぐためにSRPは一つのクラスは一つの責任だけを持つように規定しているのです。 2. オープン・クローズド原則 (OCP, Open Close Principle) オープン・クローズド原則(以下、OCP)は、ソフトウェアのクラス、モジュール、メソッドなどの拡張には開かれていなければならず、修正には閉じていなければならないという原則です。 この原則に最も適しているために、ファイル(file)に特定の内容(content)を書く作業を例に挙げて説明します。 以下のコードは実際に動作するコードではなく、参考用です。 void fileOneWrite(String content){ File file = new File("./one.txt"); file.write(content); } Fileクラスのメンバ関数に引数で渡された文字列を書く関数があったと仮定したとき、この関数のように設計すると、one.txtファイルに引数contentに関する内容を書き込むようになります。 でももしtwo.txtファイルにも書きたいのであればどうでしょうか?
2022年2月25日