0
私は、以下のリストに類似した汎用再利用可能な検証チェックの成長のリストを持っている:フィルタリングされた関数リストを動的に選択して順序付けするために使用するPythonパターンはどれですか?
1. check_product_name()
2. check_product_price_within_range()
3. check_product_expiration_date()
4. check_product_sizes()
5. check_foo()
6. check_bar()
7. ...
私もクライアントの成長のリストを持っています。クライアントAはバリデーション1〜5を実装したいが、クライアントBはバリデーション3,6、および4をその順序で実装したいかもしれない。
今、私は以下のような簡単なアプローチを考えています。 (擬似コード、実際の構成は、データベース内に格納されます)
client_a_validations = ['check_product_name', 'check_product_price_within_range', 'check_product_expiration_date', 'check_product_sizes', 'check_foo']
client_b_validations = ['check_product_expiration_date', 'check_foo', 'check_product_sizes']
私の質問があり、私はこの問題を解決するために参照することができ、より良い、より確立したパターンはありますか?
入力いただきありがとうございますが、私はdjangoを使用していません。ここでのコンテキストはより一般的であり、Webには関連しません。私はアイテムをキューから取り出し、共通のライブラリを使って評価しています。特定の条件によっては、アイテムを評価するために使用する共通ライブラリ内のメソッドのホワイトリストのみを選択します。 –
私はちょうどDjango(Pythonコードの最高の例の1つと考えられています)の著者が(私が思ったように)同様の問題をどのように決めたかを示したかっただけです。 – g1zmo