デビッド・ウィーラー:コンピュータサイエンスのあらゆる問題は、間接参照の追加によって解決できる。
この考え方はますます理にかなっていると感じるようになってきました。なぜでしょうか?
私自身の理解は次のとおりです:
- 最初に書かれたコードは特定の問題を解決するためだけにあり、特定の状況に対応しています。
- 徐々に特定の状況が増えてくると、元のコードを変更し続けると複雑になり、変更が難しくなります。
- 問題を簡素化するために、最下層(最初に特定の問題を解決するために書かれたコード)を抽象化し、インターフェースを公開して上位層に適合させます。上位層の適合とは、異なる種類の特定の問題を下位層のインターフェースに適合させることであり、これにより新たな層が追加されたことになります。
- ステップ 3 の利点は何ですか? 下位層のコード変更が少なく、上位層の適合は適合ロジックだけで済むため、コードの隔離が実現され、相互影響が減少します。もし適合層で問題が発生した場合は、ステップ 2 で言及された問題を解決するためにステップ 3 を続けることになり、これにより新たな層が追加されます。このように、問題を一つずつ解決していくことになります。
- 現実とこの論理は非常に似ています。最初に書かれたコードは固定されていて、変更が難しくなると、パラメータや設定を取り出して柔軟に設定できるようにします。
少しの気づきですが、確かに理にかなっています。