2011-04-25 195 views
2

我是新的模式编码方式,并希望开始在我的代码中实现模式。我有一个web服务,它有多个操作,并为每个操作接收不同的xml输入(有自己的模式)。我想实施一种模式来验证所提供的输入。设计模式

我的设计: 有一个接口IValidate 实现接口EntityAValidate,EntityBValidate等, 各实施validate方法将检查XML的有效性,也做单独的节点验证,如字符串不能有特殊人物等。,

我的问题: 我们能否使用任何其他设计?请让我知道模式名称 如何重用一些常见的验证,如数字检查,跨操作的日期检查 如何自动选择相应的验证器?

+9

使用设计模式最糟糕的方式是尝试添加设计模式。模式应该在没有尝试实施的情况下脱离设计。 – 2011-04-25 08:27:45

+1

一个验证器就是这样。你不需要设计模式。 – 2011-04-25 08:28:22

+0

我想概括为“设计模式的第一条规则,是不是谈论设计模式”!第二条规则......等等(如果你还没有看到'搏击俱乐部',你应该!) – 2011-04-25 08:30:13

回答

1

此基础上声明:“我有一个具有多个操作,并接收每个操作不同的XML输入的Web服务”,命令模式可能会是一个不错的选择。它将更普遍适用,但它不需要特定于验证。

命令模式封装每个操作为对象,从每一个共同的基类(称之为类操作),它提供一个“执行”方法的。从每个传入的xml操作中,您将实例化相应的Operation子类,并将它们传递给调用execute的某个操作处理实体。

你可以建立你的验证到此,增加了“验证”的方法,以你的操作的基类。处理器可以在“执行”之前“验证”每个操作。

在一般情况下,我同意您的文章的评论者。你应该自己研究设计模式,然后当你解决问题时他们会跳到你身边。不要选择一种模式,并尝试将其塞进现有的设计中。

0

我建议你开始阅读有关DP,然后结识很多人。这样你就会明白什么时候,哪一个适合或不适合你的需求。设计模式是为了在您确实需要特定需求时使用,意思是“您使用得越多越好”是一种非常糟糕的方法。希望能帮助到你!

我在DP文献中留下两个推荐; Head First - Design PatternsElements of Reusable Object Oriented Software