Design patterns 设计模式

Design patterns 设计模式,design-patterns,Design Patterns,我不熟悉模式编码方式,希望开始在代码中实现模式。我有一个Web服务,它有多个操作,并为每个操作接收不同的xml输入(有自己的模式)。我想实现一个模式来验证提供的输入 我的设计: 有一个接口 实现与EntityAValidate、EntityBValidate等的接口。。, 每个实现的验证方法将检查xml的有效性,并执行单个节点验证,例如字符串不能有特殊字符等 我的问题是: 我们可以使用其他设计吗?请告诉我图案名称 如何跨操作重用一些常见的验证,如数字检查、日期检查 如何自动选择相应的验证器?基于

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

我的设计: 有一个接口 实现与EntityAValidate、EntityBValidate等的接口。。, 每个实现的验证方法将检查xml的有效性,并执行单个节点验证,例如字符串不能有特殊字符等

我的问题是: 我们可以使用其他设计吗?请告诉我图案名称 如何跨操作重用一些常见的验证,如数字检查、日期检查 如何自动选择相应的验证器?

基于这句话“我有一个Web服务,它有多个操作,并为每个操作接收不同的xml输入”,命令模式可能非常适合。但是,它将更普遍地应用,它不需要特定于验证

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

您可以将验证构建到其中,向操作基类添加一个“validate”方法。处理器可以在“执行”每个操作之前“验证”每个操作


总的来说,我同意你帖子上的评论。你应该研究设计模式本身,然后当你解决问题时,它们会跳出来攻击你。不要选择一种模式,并试图将其塞进现有的设计中。

我建议您开始阅读DP,然后了解其中的许多内容。这样你就可以知道什么时候,什么样的衣服适合你,什么样的衣服不适合你。设计模式是为了在您确实有特定需求时使用,这意味着“您使用的越多越好”是一种非常糟糕的方法。希望有帮助

我对DP文学留下两个建议; 及

使用设计模式最糟糕的方式是尝试添加设计模式。模式应该在不尝试实现它们的情况下脱离设计。验证器就是这样。你不需要设计模式。我想把它总结为“设计模式的第一条规则,就是你不要谈论设计模式”!第二条规则。。。等等(如果你没有看过《搏击俱乐部》,你应该!)你打算使用SAX或DOM解析吗?这将对如何验证xml有很大影响。-1表示错误的问题标题。请将其重新命名为可搜索的名称。例如,“我应该如何在代码中实现设计模式?”