![]() |
1
3
我将把这个逻辑委托给各个IRecipie类:
根据评论编辑 要找到所有可以烹饪的菜谱,只需执行以下操作:
编辑2
或者,如果你在某处存储了所有可能的食谱列表,你可以
|
![]() |
2
1
一些想法:
编辑:一些额外的想法:
|
![]() |
3
1
原桩--
马丁·福勒帮你解决了这个问题…它被称为规范模式。
更新的帖子-- 在下列情况下,请考虑使用复合规范模式:
模式的真正威力在于能够将不同的规格组合成具有或不具有关系的复合材料。将不同的规范组合在一起可以在设计时或运行时完成。 eric evan关于领域驱动设计的书中有一个很好的例子(shipping manifest) 这是wiki链接: http://en.wikipedia.org/wiki/specification\u模式 Wiki链接的底部是此PDF链接: |
![]() |
4
0
我认为这段代码的主要目的是将菜谱与菜谱中的成分联系起来。一种方法是在recipe类本身包含一个成分列表,然后将其与传入的成分列表进行比较,如下所示:
这假设你在某个地方收集了你所有的食谱。但是,它应该足够简单,可以设置这些元素的静态列表或从数据库中提取。 问题中的linq查询查找所有传入的成分都在成分列表中的任何配方(或者,如前所述,成分中没有不在成分中的成分)。这也可能减少了对菜谱子类的需求,这看起来有点奇怪(尽管我知道有一些额外的原因你需要这个) |