【发布时间】:2017-08-31 03:26:38
【问题描述】:
当我在几个条件之间有一个已知的执行路径时,我发现我使用以下模式。我将在 Map(在本例中为 POJO)中定义我的测试用例,并使用条件来进行键查找。我通常使用术语predicate。
这种模式有标准名称吗?如果有,它的使用历史或背景是什么?
var predicates = {
negateRegexp: function (value, operator) {
return !operator.regex.test(value);
},
negateOperand: function (value, operator) {
return value !== operator.operand;
},
affirmRegexp: function (value, operator) {
return operator.regex.test(value);
},
affirmOperand: function (value, operator) {
return value === operator.operand;
}
};
var predicateKey = (operator.prefix === '!' ? 'negate' : 'affirm') +
(operator.regexp ? 'Regexp' : 'Operand');
var testResult = predicates[predicateKey](value, operator);
if (testResult) {
doSomethingWith(value);
}
我在示例中使用了 JavaScript,因为这是我通常使用的。但我确信我已经在其他语言中看到过这种模式(甚至是像 Java 这样的 OOP 类型的语言)
【问题讨论】:
标签: javascript oop design-patterns