坚持规范

我正在构建一个系统,用户可以在其中获取项目并定期获取新项目的通知。用户应通过筛选某些属性来定义他们想要的项目。 我正在使用规范模式来过滤项目。我的想法是用户应该在web gui中定义自己的规范。 过滤很简单:
ItemService
{
    public IEnumerable<Item> GetMatching(IEnumerable<Item> items, IItemSpecification spec)
    {
        return items.Where(spec.IsMatch);
    }
}

IItemSpecification
{
    IsMatch(Item item);
}
问题是,持续使用不同规格的最佳方法是什么?我对如何坚持它没有任何要求。关系数据库,文档数据库,xml,无论什么工作。 我能想到: 编写外部DSL(并将其存储在rdb中的简单列中) 为规范中的每个属性存储一行(在rdb中),指示要过滤的内容和修饰符(等于,大于)。这将导致相当多的行。 为每个规范创建一个新表(不知道这是否真实) 似乎DSL选项是最干净的解决方案(我只需要编写一个带有dsl的
DSLSpecification
并将其传递给我的Itemservice。 也许我太复杂了。     
已邀请:

要回复问题请先登录注册