2012-03-26 9 views
0

最近のコードリファクタでは、データ処理をデータそのものから分離するアイデアを実現しています。これは、一連の責任の処理ユニットのようなもので、特定のビジネススコープ内のデータを処理する機能を提供し、データオブジェクトは処理チェーン全体に渡されます。クラスがプライベートデータを保持しないようにするエレガントな方法はありますか?

さらなる最適化は、処理チェーンインスタンスを「単一化」することによって行われます。潜在的な一致の問題を考慮すると、これらの処理ユニットにおけるプライベートデータ参照を除去することが望まれる。

今後の変更を行っている間に他のプログラマがこのパターンに適合することを示唆するプログラミングパラダイムがあるのだろうかと思います。

ありがとうございます〜

+1

あなたがやっていることは、「貧血モデル」デザイン(アンチ)パターンに非常に似ていることを指摘したいと思います。個人的に - 私はそれに反対しています。 OOの設計(私が好きな)は、データとその操作を1か所で行うことに基づいています。ここにはMartin Fowlerの取り組みがあります:http://martinfowler.com/bliki/AnemicDomainModel.html –

+0

* APT *ツールを構築しました。 – fwonce

答えて

1

この原則は「サービスステートレス」と呼ばれています。サービス指向の設計パラダイムサービスでは、ステートレスであると想定されるため、プライベートデータはありません。スケーラビリティをサポートするためには無国籍性が必要です。

UPDATE:状態データ(コンテキスト、セッション、ビジネス)が必要な場合、クラスが状態管理委任と状態延期と呼ばれるプライベートデータを保持しないようにするエレガントな方法があります。状態延期の例は、コンポーネントが状態を書き込んで後で取り出すために使用する専用データベース/テーブルです。

関連する問題