なんだかよくわからない説明ですね。ではまず「上位のモジュールは下位のモジュールに依存してはならない」について考えてみます。 なぜ、上位モジュールが下位モジュールに依存してはいけないのでしょう? 例えば、下記のようなCameraを表すクラスを実装したとします。(@implementationはひとまず置いておきます) CameraクラスはGoodStorageクラスのインスタンスを保持しています。ここで、Cameraクラスの実装ではこのstrageに様々な処理を命令するためのメソッドがたくさんあると仮定しましょう。 (例えば、写真を保存する、写真を検索する、写真一覧を取得する、写真のプロパティーを変更する...などなどです) ですが、後になって別の機能を持ったストレージが欲しくなった場合どうすればよいでしょうか?例えば、「既にあるGoodStorageクラスを新しく作ったGreatStora