unity開発メモ帳

Unityゲーム開発です

SOLID原則のざっくりまとめ:後編

 

前編↓

fatena.hatenablog.com

 

インターフェース分離の原則

インターフェース分離の原則とは、インターフェースを機能ごとに分けて、それぞれのクラスで使わない機能が無いようにすることです

 

例えば、酸素を吸う「呼吸メソッド」と、二酸化炭素を吸う「光合成メソッド」を複合したインターフェースを作ったとします。

 

 

そして、そのインターフェースを継承して「人間クラス」と「植物クラス」を作りました

これは好ましい状況とは言えません。

人間クラスは光合成をしませんし、植物クラスも呼吸をしません。

が、それを知らない人がクラスを改変すると、「人間が光合成をする」や「植物が呼吸をする」などのありえない状況が生まれてしまいます。

そういったバグを生み出す余地をなくすために、インターフェースは機能ごとに分ける必要があります

 

依存性逆転の原則

依存性逆転の原則とは、[下位モジュール --> 上位モジュール]のように、下位モジュールが上位モジュールに依存するような設計にすることです

 

例えば、自動車クラスを設計するとします。

おおざっぱにいえば、自動車クラスは「ハンドルをきった方向に曲がり、前進と後退とブレーキがかかる」ことができればよいわけです

問題は、それらの機能をどのモジュールで実現するかです。

基本的に上位モジュールは変更が少なく、下位モジュールは変更が多いです。

なので、主要な機能を変更の多い下位モジュールで実装してしまうと、後々の手間が大きくなってしまいます。

また、上位モジュールからの目線でも、「あの下位モジュールがないと動かない」という状況が生まれ、上位モジュールを再利用することが難しくなってしまいます。

 



終わりに

2回に渡って書いてきましたが、SOLIDは調べるほど様々な考えが出てきます。

この記事はSOLIDについて深く掘り下げたわけではなく、浅く、ざっくりまとめてみただけなので「もっと気になる」という方は記事の下にある参考元のページや、各原則について調べてみると良いと思います。

 

では

参考

インターフェース分離の原則

インターフェース分離の原則を考える

【オブジェクト指向】「インターフェース分離の原則」について | プログラミングマガジン

 

依存性逆転の原則

【オブジェクト指向】「依存関係逆転の原則」について | プログラミングマガジン

依存性の逆転のいちばんわかりやすい説明