1

私は非常に複雑なトピックで立ち往生しています。データ検証のための普遍的なソリューションを考え出そうとしています。携帯電話会社の顧客管理システムに似たシステムがあり、顧客は情報 (コスト、支払い、個人情報、イベントのアーカイブ、負債など) でいっぱいのアカウントを持っており、複数の状況でこのデータを検証する必要があります。さまざまなアカウントがあり、そのうちのいくつかは特定の検証が必要であることを忘れることはできません。私が理解できないのは、この作業に対する普遍的でシンプルで再利用可能なシステムです。

主なアイデアは、使用される多くの「制約」があることです (例: 顧客は名前を持っている必要がある、借金がある場合、過払いがないなど)、また定義された状況 (アカウントのキャンセルなど) があります。 、支払い要求送信など) データを検証したい場合 (コードからの検証の実行はここではトピックではありません)。シチュエーションには、検証または実行される制約のリストがあります。これが私たちが望むものです。

しかし、これに対する正しいJavaアプローチは何ですか? すべての状況と制約はクラスであるべきですか? シチュエーションには制約インスタンスがあり、インスタンスには validate() メソッドがありますか? しかし、それぞれの主張は異なるでしょう。他のアイデアはありますか?

ここでの回答は長くなる可能性があるため、そのトピックに関するドキュメントを教えていただければ幸いです。答えてくれてありがとう!

4

4 に答える 4

1

このパターンを見てください:

戦略パターン

責任パターンの連鎖

どちらも、ビジネスルールの検証/チェーンのチェーンを構築するのに役立ちます

于 2012-10-10T09:45:05.413 に答える
1

私にはビジターのように聞こえます:

多数のエンティティ タイプがありますが、それらすべてに 1 つの共通点があります。それはvalidate()メソッドです。同じエンティティ タイプに対して異なる検証戦略が必要な場合は、すべての検証メソッド内で Chain of Responsibilityを使用できます。たとえば、アカウントの最初に名前バリデーターを実行してから、アドレス バリデーター、残高バリデーターなどを実行します。

幸運を

于 2012-10-10T09:51:05.213 に答える
0

これを見てみましょう: http://www.visual-rules.com/business-rules-management-software-rules-engine.html

このツールを使用してデータの一貫性を管理しています。コードからルールをカプセル化できるため、これは優れたアプローチです。IT の知識がなくても、ルール モデラーによってビジネス ルールを管理できます。ビジネスデータの検証を扱うのに良いコンセプトだと思います! HTH

于 2012-10-10T10:01:52.590 に答える
0

ルールエンジンが必要ですか?http://java-source.net/open-source/rule-engines

于 2012-10-10T09:46:28.657 に答える