疎結合(そけつごう)と密結合(みつけつごう) |
|
|
|
|
|
|
疎結合(そけつごう) |
他と結びつきが弱い構造。
独立性が強い。
プログラム、コンポーネント同士の
の結びつきが弱い状態。 |
密結合(みつけつごう) |
他と結びつきが強く依存する構造。
独立性が弱い。
プログラム、コンポーネント同士が
密接に結合していて分離すると
動かない状態。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
引数(疎結合)を使った場合
関数が、引数を使って値を受け取っている場合、
関数はクラスや他の関数と緩やかな結びつきになる。
引数は、関数自身の中に変数を置いて、
必要な値をコピーして受け取る仕組み。
関数外の変数を使っていないため
クラスに影響されない。
関数は単独で動かせる。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
メンバ変数(密結合)を使った場合
関数が、メンバ変数を使って値を受取っている場合、
関数はクラスや他の関数ときつい結びつきになる。
メンバ変数は、変数をクラスに置く仕組み。
関数は、値を受け取るのに関数外のメンバ変数が
必要になり、クラスの影響を受ける。
関数は単独で動かせない。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
エディタウィンドウ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
引数を使って、うまく「疎結合」で作れば、
簡単に他のプログラムに移植したり、
ライブラリーにして使いまわしたりしやすい。 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
引数とメンバ変数の使い分け方(最初)
引数 |
別のプログラムでも流用できそうな関数の場合
(例えば、キー入力処理のような、いろいろなゲームで使える関数) |
|
|
メンバ変数 |
・たくさんの関数で使う変数の場合
(例えば、どの処理モードでも使う共通変数)
・値を保持しておきたい変数の場合
(最初以外初期化されないので値を引き継げる。
例えば、勇者の生命力のようなゲーム中ずっと使う値。) |
|
|
2つを組み合わせて使う場合もある |
|
|
|
|
|
|
|
|