3層構造

ソフトウェアには3層構造が良く出てくる(ような気がする)。一番上がユーザインターフェースだったり概念だったりで、一番下がハードウェアにアクセスする層だったりデータベースにアクセスする層だったりする。昨日書いた接着層が必要だという話はそういういろいろなところで聞く3層構造の話と、ある意味同じである意味違う(と思う)。もう少し考えてみると、俺が言いたかったのはそんなに具体的な話ではなくて、一般論としてソフトウェアを何らかの形(クラスかもしれないし、ドメインかもしれないし、実行ファイルかもしれない)で2つ以上に分割した場合に、その時はそれで良くても後から変更する時はその分割では足りない場合がある、ということだ。
で、変更のたびに間に入る接着層を作ってソフトを作り直す余裕があればいいけど、どうしても現在の分割に引きずられてしまう。