Edit Diff Annotate History
Upload
List
Recent
Alias
Top
Help
EOFとは何か : Edit
Last updated: Fri Mar 30 22:07:46 +0900 2007
EOFとは何か、と問われたら「O-Rマッパー」とか「SQLを自動生成するツール」といった説明をしたくなりますが、私は「''コンテキスト指向のデータベースフレームワーク''」と解釈しています。 (※「コンテキスト指向」より「トランザクション指向」といったほうがわかりやすいかもしれません。 多くのクラスに"...Context"とつくのでコンテキスト指向としましたが、曖昧かも。) データは「いつデータベースから取得したか」「変更したかしないか」などの状況で意味がまったく変わってきます。 例えば、1つのデータを複数の人が同じタイミングで取得したとします。 そのデータは1つのデータベースからコピーされたまったく同じ内容のものですが、自分が取得したデータは自分にのみ意味があります。 他の人がそれぞれ手元でデータを編集しても、自分のデータには影響しません。 それでは、一人が異なる問い合わせを行った結果に重複するデータがあった場合はどうでしょうか。 コンピュータから見ればメモリ上に別々に存在する異なる文字列ですが、 検索した人からすればどれも同じデータです。 このように、データを扱う視点や人が変わればデータの意味が変わってきます。 EOFはこのような状況・意味(コンテキスト)を管理する抽象的なフレームワークです。 あらかじめその上にリレーショナルデータベースを対象としたクラス群が実装されているから、データベースを扱えるようになっているだけです。 これがファイルであればCVSのようなバージョン管理システムになるでしょうし、オブジェクトであればSmalltalk環境やSqueakのように動的なシステムになることでしょう。 この考えをWebに移したものがWebObjectsです。