短編RPG制作(Unity2D)【第47回】スクリプト見直しその2


SOLID原則

調べれば調べるほど良く分からなくなっていくのですが、拡張・修正しやすいプログラムを書くために「SOLID原則」というものがあるらしいです。

S (Single Responsibility) 単一責任の原則

「クラスは、単一の責任を持つべきだ。」
バグが発生した際の切り分けなど、広い範囲に影響が及ばないよう動作は分離するべきです。

O (Open-Closed) オープン・クローズドの原則

「クラスは、拡張にはオープンで、変更にはクローズドであるべきだ。」
機能を追加する際は、新たなクラスの追加だけで済むようにするべきです。既存のクラスの変更が必要になるのは良くない構成です。

L (Liskov Substitution) リスコフの置換原則

「SがTのサブタイプである場合、プログラム内のT型のオブジェクトをS型のオブジェクトに置き換えても、そのプログラムの特性は何も変わらない。」
子クラスは親クラスができることが全て実行可能であるべきです。(継承)

I (Interface Segregation) インターフェイス分離の原則

「クライアントが使用しないメソッドへの依存を、強制すべきではない。」
クラス内に使用しないメソッドを含ませるのは良くない記述です。必要な動作以外は削除するのが望ましいです。

D (Dependency Inversion) 依存性逆転の原則

「上位モジュールは、下位モジュールに依存してはならない。どちらも抽象化に依存すべきだ。」
「抽象化は詳細に依存してはならない。詳細が抽象化に依存すべきだ。」

  • 上位モジュール(クラス)……ツールを使って動作を実行するクラス

  • 下位モジュール(クラス)……動作を実行するために必要なツール

  • 抽象化……2つのクラスをつなぐインターフェイス

  • 詳細……ツールの動作方法

インターフェイスを介することで、クラス同士の依存を減らすべきです。

循環参照を取り除くため、インターフェイスの勉強が必要そうです。


この記事が気に入ったらサポートをしてみませんか?