内容发布更新时间 : 2025/2/3 3:06:39星期一 下面是文章的全部内容请认真阅读。
【黑马程序员济南】策略设计模式
上一次我们聊了简单工厂模式,让大家了解到了如何使程序具备更高的解耦性,使每一个功能代码都独立出来,今天我们和大家聊一下另一种解耦的设计模式,它就是策略设计模式。 什么是策略设计模式:它定义了算法家族,分别封装起来,让他们之间可以项目替换,此模式让算法的变化,不会影响到算法的客户。我们可以这样理解,工厂模式是让我们内部的构造变得高内聚低耦合,而策略模式是让我们的内部代码和外部客户端代码不直接进行联系,而是通过一个桥梁来进行沟通,并且使相同算法或功能的代码进行封装。给大家用UML图进行展示一下: Context ConcreteStrategyA ConcreteStrategyB Strategy ConcreteStrategyC Context上下文,用一个 ConcreteStrategy来配置,具体策略类,封装了具体的算法或行为,继承Strategy 维护一个对Strategy 对象的引用
大家通过上方的UML图可以看出,策略设计模式的思想为封装算法类,通过一个上下文的类,来沟通客户端和服务器端的逻辑代码。给大家代码演示一下: /**
* 此类为抽象的基类,用于具体的代码来继承使用
黑马程序员济南中心 编著
* @authorzhe * */
publicabstractclassStragerySuper { }
具体的实现代码类: /**
*具体的算法实现代码A * **/
classConcreteAextendsStragerySuper{ }
黑马程序员济南中心 编著
//算法方法,用于具体的逻辑算法来实现 publicabstractvoidAlphInterfact();
@Override
publicvoidAlphInterfact() { }
System.out.print(\算法A的实现类\);
/**
*具体的算法实现代码B * **/
classConcreteBextendsStragerySuper{ } /**
*具体的算法实现代码C * **/
classConcreteCextendsStragerySuper{
@Override
publicvoidAlphInterfact() {
黑马程序员济南中心 编著
@Override
publicvoidAlphInterfact() { }
System.out.print(\算法B的实现类\);