今天和大家介绍一下一种特殊的设计模式——规约模式(Specification pattern)
什么是规约模式(Specification pattern)
假设你正在减肥,不能吃肉,也不能吃卡路里大于500的食物。把这种情况用编程来表示就会是下面这样
void Eat(Food food)
{
if(food.HasMeat||food.Calorie>500)
{
Console.WriteLine("不吃");
return;
}
Console.WriteLine("吃");
}
很简单的卫语句搞定。
但是如果你是一个挑食者,你不吃鱼,虾,鸡蛋,牛奶等等,那上述的卫语句就会变得无比之长。
这时候我们就会想着把它抽取成一个单独的返回布尔值的方法。
当然现在只是结构上的抽取,还不能算是模式。
但是如果现在的用例是给所有类型的同学配餐,那这个方法就可以抽成可复用接口,形成模式。
定义
在wiki中ÿ