当前位置: 首页> 游戏> 游戏 > 家居装饰网站设计论文_免费表格模板网站_宝鸡网站seo_网络优化工程师骗局

家居装饰网站设计论文_免费表格模板网站_宝鸡网站seo_网络优化工程师骗局

时间:2025/7/13 9:24:46来源:https://blog.csdn.net/weixin_44623642/article/details/145602144 浏览次数:0次
家居装饰网站设计论文_免费表格模板网站_宝鸡网站seo_网络优化工程师骗局

使用场景

  1. 主要目的是定义一系列可互换的算法或行为,并使它们在运行时可以根据不同的情况动态地替换。
  2. 它侧重于算法的封装和替换,让客户端可以灵活地选择不同的策略来完成特定的任务。
    1. 例如,在一个游戏角色的行为系统中,角色的攻击行为可能有多种策略,如近战攻击、远程攻击等,策略模式可以让游戏根据角色的装备或者玩家的操作来动态选择攻击策略
  3. 适用于有多种算法或行为可以完成同一项任务,并且这些算法或行为在运行时可能需要频繁切换的情况。比如,在一个导航软件中,路径规划可以有多种策略,如最短路径、最快路径、避开拥堵路径等,用户可以根据自己的需求在不同的策略之间切换

为什么用

  1. 同一个功能,多个版本实现
  2. 成员函数每一个都是独立的功能,互相无耦合,甚至可以相互组合,策略模式而非工厂模式

example

class ShapeDrawingStrategy {
public:virtual void draw() = 0;
};// 圆形的绘制策略类
class CircleDrawingStrategy : public ShapeDrawingStrategy {
public:void draw() override {// 这里是绘制圆形的具体代码,比如使用图形库来绘制一个圆std::cout << "Drawing a circle." << std::endl;}
};// 矩形的绘制策略类
class RectangleDrawingStrategy : public ShapeDrawingStrategy {
public:void draw() override {// 这里是绘制矩形的具体代码std::cout << "Drawing a rectangle." << std::endl;}
};// wapper
class ShapeDrawer {
private:ShapeDrawingStrategy* strategy;
public:ShapeDrawer(ShapeDrawingStrategy* s) : strategy(s) {}void drawShape() {strategy->draw();}
};// 使用
int main() {// 使用圆形绘制策略ShapeDrawer drawer(new CircleDrawingStrategy());drawer.drawShape();// 使用矩形绘制策略drawer = ShapeDrawer(new RectangleDrawingStrategy());drawer.drawShape();return 0;
}
关键字:家居装饰网站设计论文_免费表格模板网站_宝鸡网站seo_网络优化工程师骗局

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: