0

私は、e コマース Web サイトのプロモーション部分に取り組んでいます。

次の 2 種類のプロモーションがあります。

  1. 顧客に割引を提供する
  2. ギフト商品(無料)をお客様に提供

どちらのプロモーションでも、顧客が満たすためにいくつかの前提条件が必要です。たとえば、ショッピング カートの小計が $1000 を超える場合、顧客は 20% の割引を受けることができます。別の例として、ショッピング カートの小計が $1500 を超える場合、顧客は iPad 3 をギフトとして受け取ることができます。

この 2 つのプロモーションの前提条件は似ていることがわかります。そのため、クラスを使用しPromotionてプロモーションを表し、クラスを使用しPromotionRuleて顧客が満たすべき前提条件を提示します。モデルは次のとおりです (C# で記述)。

public class Promotion {
    public string Name { get; set; }
    public PromotionType Type { get; set; }
    public decimal DiscountAmount { get; set; }
    public IList<Product> GiftProducts { get; set; }
    public IList<PromotionRule> Rules { get; set; }
}

public enum PromotionType {
    Discount = 0,
    GiftProduct = 1
}

public class PromotionRule {
    public decimal? MinAmountOfTheShoppingCart { get; set; }
    ...
}

プロモーションには、顧客が満たすべきプロモーション ルールのリストを含めることができます。は、PromotionTypeお客様に割引やギフト商品を提供するかどうかを示すために使用されます。

さて、私の質問は次のとおりですPromotionRule。この場合、適切な名前はありますか? 私は英語があまり得意ではないので。この名前が分かりやすいかどうかはわかりません。ありがとう!

4

1 に答える 1

1

...顧客が満たすべき前提条件を提示する PromotionRule クラス。

「ルール」は悪い名前ではないと思います。通常、ルールには 1 つ以上の暗黙的または明示的な条件が含まれます。

ウィキペディアには、ビジネス ルールの下にいくつかの例がリストされています。

たとえば、ビジネス ルールでは、返品した顧客に対して信用調査を実行しないことが規定されている場合があります。ビジネス ルールの他の例としては、賃貸業者が信用格付けが低すぎる場合に賃貸テナントを許可しないように要求することや、会社の代理店に優先サプライヤーと供給スケジュールのリストを使用するように要求することが含まれます。

ウィキペディアの最初の例では、次の条件が表示されます。

if( !isReturnCustomer ){
    PerformCreditCheck();
}

ルールには、次のように複数の条件を簡単に含めることができます。

if( temperature < 0 && isRaining ){
    HandleFreezingRain();
}

したがって、クラスが複数の条件をカプセル化する場合は「ルール」を、オブジェクトが単一の条件のみをカプセル化する場合は「PromotionCondition」をお勧めします。またはPromotionRule、コレクションを含むクラスかもしれませんPromotionConditions

于 2012-09-26T19:52:56.610 に答える