短編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つのクラスをつなぐインターフェイス
詳細……ツールの動作方法
インターフェイスを介することで、クラス同士の依存を減らすべきです。
循環参照を取り除くため、インターフェイスの勉強が必要そうです。
この記事が気に入ったらサポートをしてみませんか?