3.策略模式

来源:互联网 发布:python项目源代码下载 编辑:程序博客网 时间:2024/05/29 17:17

定义:它定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。

1.抽象父类:抽象算法方法。

2.具体算法子类:封装了具体的算法或行为,继承抽象父类。

3.Context类:在类里定义一个成员变量,维护一个对策略对象的引用。并提供一个上下文接口方法,根据具体的策略对象,调用其算法的方法。

4.客户端通过new Context(传入不同的具体算法子类)。由于实例化不同的策略子类,所以最终调用上下文接口方法时调用的是不同具体算法子类的方法。

5.可以在传入new Context(子类)的时候传入字符串而不是传入子类,在Context类中通过判断字符串new出不同的子类来赋值确定调用的是哪个算法子类(目的是使客户端调用时减少类的认识,降低耦合)。

1 0
原创粉丝点击