策略模式,定义一组算法(代码),将它们封装起来,使其可以相互替换。
策略模式首先要针对不同的情况(算法、代码)定义不同的策略类。
首先看个一段代码
要想插入代码有什么方法呢,我们可以定义个Insert接口,在其中定义insertCode方法。
然后具体的类去实现它,并将该类作为参数传递给main中的inserCode方法。
插入接口
插入接口实现类
需要变换插入代码,只需要将insertCode方法的参数修改即可,针对不同的代码都封装成一个类。
插入的那段代码可以看做是策略,策略可以是不同的代码,算法等。
策略模式需要策略对象,就是上述的Insert的实现类。
下面看下一个加减的例子,加减可以看做是两种策略。
我们把加减抽取出来,形成两种策略。
策略接口
加操作
减操作
使用策略的Context类,根据策略的不同会执行不同的操作。
Main
参考资料:
Original: https://www.cnblogs.com/huang-changfan/p/11057106.html
Author: gcmh
Title: 1.19(设计模式)策略模式
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/588449/
转载文章受原作者版权保护。转载请注明原作者出处!