2011-10-18 13 views
-1

私が長年尋ねてきた1つの質問は、オブジェクト指向プログラミングで、設定やプロパティなどのデータをオブジェクト指向の方法でどうやって渡すべきかということです。データを整理し、データへのアクセスを整理しますか?

たとえば、ほとんどのプログラムにはオプションがあります。たとえば、元に戻すレベルを設定するオプションがあります。これを取得して新しい値に設定する必要があります。これらの設定がXMLファイルに保存されている場合、アプリケーションのそのセクション(オプションダイアログ)には、データをロードするためのXMLパーザーが必要です。代わりに、設定の取得と設定を表すオブジェクトを持つ別のシナリオでは、これを必要とする各領域はすべての設定にグローバルにアクセスし、その設定へのポインタを渡す必要があります。

Mayaや3DS Maxのようなシナリオでは、オブジェクトのプロパティを設定するために巨大なGUIシステムを使用しますが、これはクリーンでOOの仕方でどのように行われますか?ウィジェットは、3Dオブジェクトからデータを受け取る必要があり、このオブジェクトに情報を送信する必要があります。 3Dオブジェクトに関するダイアログがダイアログに表示されますか?おそらくそうではありません。だから、これはどのようにして行われますか?

別のシナリオでは、フレームがmousemoveになったときにステータスバーを更新する必要があります。私のフレームにステータスバーのポインタがあるはずですか?

これに関する任意の抽象的な例または読書は高く評価されます。前職で

+1

あなたは私を冗談しています、これは良い質問です... – jmasterx

答えて

2

おかげで、私たちは、さまざまなアプリケーションのためのいくつかのXMLファイルを持っていた、との設定の多くは、環境と実行コンテキストに応じて似ていますが、変化させました。この設定の多くは、サードパーティサービスのユーザー名とパスワードでした。パスワードが変更されると、数十のXMLファイルを掘り下げて変更し、その後数十のアプリケーションを再デプロイする必要があります。

すべてのXML設定を、インタフェースとタイプ階層を使用してオブジェクトに移行しました。このインターフェースを使用することで、共通の構成構造に対してコードを作成し、コンパイル時のサポートを取得し、依存関係注入を使用してランタイムインスタンスを解決することができました。タイプ階層は、基本クラス内で一度も変化しない設定を定義することを可能にし、異なる実際の値をオーバーライドするだけでした。

私は小規模なアプリだと思うが残念だが、私たちの場合は不可欠だった。

+0

ありがとう!これは面白い :) – jmasterx

関連する問題