最近、私が取り組んでいるプロジェクトで、次のような問題に巻き込まれました。
(ツリーのような) データ構造のセットがあるとします。
販売契約
買い手
住所
街
電話
ファイナンス
売り手
住所
アイテム
価格
もの
他のもの
そして、SellingContractいくつかのビジネス フレーズを通過し、それぞれがSellingContract特定の条件を満たしているかどうかを判断するためにデータをチェックする必要があります。
最初に、トップ コンテナー ( SellingContract) がすべての条件チェッカー メソッドを提供するようにします。
SellingChecker.tooMuchItems()
SellingChecker.canProceedToStepXXX()
しかし、新しい条件が発生するたびに、SellingContract.
この問題を解決するためのエレガントな方法を提案してくれる人はいますか?
現在、次の 2 つの方法を検討しています。
にビジター パターンを適用すると
SellingContract、SellingContractはメソッドを提供しacceptConditionChecker(ConditionChecker)、条件チェッカーは インターフェースを実装しますConditionChecker。SellingContractパラメータとして受け取るユーティリティ クラスを作成し、状態を確認します。このアプローチでは、ユーティリティ クラスが構造を知っている必要があり、SellingContract手続き的なように思えます。