Я продаю товары через мой сайт. Недавно нам дали список правил, которые необходимо проверять по каждому заказу, чтобы убедиться, что он не является мошенническим. Поэтому этот список правил / показателей мошенничества будет меняться и расти, поэтому я хочу убедиться, что он легко обслуживается и действительно надежен.
Я думаю, у меня есть резюме class rule
, которое реализует каждое из правил.
abstract class Rule
{
public string Message;
public bool Success;
public void CheckOrder(OrderItem currentOrder);
}
class FakeCreditCardNumberRule : Rule
{
public string Message = "Fake CC Number Rule";
public void CheckOrder(OrderItem currentOrder)
{
currentOrder.CreditCardNumber = "1234-5678-9012-3456";
Success = false;
}
}
class ReallyLargeOrderRule : Rule
{
public string Message = "Really Large Order Rule";
public void CheckOrder(OrderItem currentOrder)
{
currentOrder.ItemsOrder.Count > 100;
Success = false;
}
}
Тогда я думаю о наличии класса, который принимает Order object
в своем конструкторе и проверяет список правил. Что-то вроде:
class FraudChecker
{
List<Rule> rules;
public FraudChecker(OrderItem currentOrder)
{
foreach(var rule in rules)
{
rule.CheckOrder(currentOrder);
}
}
}
Так что я пытался придумать лучшее место / лучший способ заполнить FraudChecker
.Rules список и начал думать, что может быть какой-то хороший шаблон дизайна, который делает что-то вроде того, что я делаю.
Кто-нибудь видел шаблон дизайна, который я должен использовать здесь? Или кто-нибудь может подумать о хорошем месте для заполнения этого списка?
-Evan