私は食料品カートのシミュレーションアプリを書いています
これが私の状況です。タイプに、それ自体で定義されたメソッドを強制的に実行させたい...
基本的に私はインターフェースを持っています
interface IGroceryCart
{
// Other methods snipped for clarity
void Checkout(IEnumerable<IGroceryItem> itemsToBuy);
}
IGroceryItem インターフェイスは次のようになります。
interface IGroceryItem
{
// Other methods snipped for clarity
CheckoutIssues EnsureFreshness();
}
IGroceryCart と IGloceryItem には明らかに具体的な実装がありますが、私がやろうとしているのはこれです:
食料品のカートで Checkout を呼び出すと、チェックアウトされているすべてのアイテムが内部的に EnsureFreshness() メソッドを呼び出し、1 つ以上のアイテムに CheckoutIssues がある場合はそれに応じて反応するようにします。
CheckoutIssues は次のようなものです
class CheckoutIssues
{
string Description {get;set;}
//etc
}
各食料品でEnsureFreshnessが呼び出される方法を実装する最良の方法は何でしょうか? または、この種のエラーを取得するためのより良い代替アプローチはありますか? カスタム バリデータ ルートを使用する必要がありますか? 各食料品には、新鮮さをチェックする独自の方法がある場合があります。たとえば、牛乳は卵とは異なるため、個々の実装に依存する必要がありますが、チェックアウトでその呼び出しを強制したいと思います。