我对模式编码方式是个新手,我想开始在我的代码中实现模式。我有一个own服务,它有多个操作,并为每个操作接收不同的xml输入(具有自己的模式)。我想实现一个模式来验证所提供的输入。
我的设计:让一个接口IValidate实现对EntityAValidate,EntityBValidate等的接口,每个实现的验证方法都会检查xml的有效性,还会做单个节点的验证,比如字符串不能有特殊字符等。
我的问题:我们可以使用任何其他设计吗?请让我知道模式名称如何重用一些常见的验证,如数字检查,跨操作的日期检查如何自动选择相应的验证器?
发布于 2011-04-28 12:16:59
基于“我有一个具有多个操作并为每个操作接收不同xml输入的webservice”这句话,Command模式可能是一个很好的选择。它将适用于更一般的情况,但它不需要特定于验证。
Command模式将每个操作封装为一个对象,每个对象都派生自一个公共基类(称为类Operation),该类提供了一个“execute”方法。从每个传入的xml操作中,您将实例化相应的operation子类,并将它们传递给某个调用execute的操作处理实体。
您可以在其中构建验证,将"validate“方法添加到Operation基类中。然后,处理器可以在“执行”之前对每个操作进行“验证”。
总的来说,我同意你帖子上的评论者的观点。你应该研究设计模式本身,然后当你解决问题时,它们就会跳出来。不要选择一个模式,并试图将其塞进现有的设计中。
发布于 2011-04-28 12:22:40
我建议你开始阅读DP,然后了解他们中的许多人。这样你就会意识到什么时候哪一个适合你的需求。设计模式是在你有特定需求的时候使用的,这意味着“用得越多越好”是一种非常糟糕的方法。希望它能帮上忙!
我在DP文献上留下了两条建议:Head First - Design Patterns和Elements of Reusable Object Oriented Software
https://stackoverflow.com/questions/5776572
复制相似问题