日期:2014-05-16  浏览次数:20351 次

JS实现策略模式
  作者:zhanhailiang 日期:2012-10-24

基本概念介绍

策略模式支持你在运行时选择算法。代码的客户端可以使用同一个接口来工作。但是它却根据客户正在试图执行任务的上下文,从多个算法中选择用于处理特定任务的算法。

使用策略模式的其中一个例子是解决表单验证问题。可以创建一个具有validate()方法的验证器(validator)对象。无论表单的具体类型是什么,该方法都将会被调用,并且总是返回相同的结果,一个未经验证的数据列表以及任意的错误消息。

但是根据具体的表单形式及待验证的数据,验证器的客户端可以选择不同类型的检查方法,验证器将选择最佳的策略以处理任务,并将具体的数据验证委托给适当的算法。

数据验证示例

假设有以下数据块,它可能来自于网页上的一个表单,而你需要验证它是否有效:

var data = {
    first_name : "Super",
    last_name : "Man",
    age : "unknown",
    username : "o_0"
};

在这个具体的例子中,为使验证器知道什么 是最好的策略,首先需要配置该验证器,并且设置认为是有效的且可接受的规则。

validator.config = {
    first_name :