Design/strategy/Strategy.hpp

48 lines
848 B
C++
Raw Permalink Normal View History

2024-10-28 14:07:29 +08:00
/*
* @Description:
* @version:
* @Author:
* @Date: 2023-10-26 11:12:14
* @LastEditors:
* @LastEditTime: 2023-10-26 11:15:05
*/
#include <iostream>
// 栽种策略接口
class PlantStrategy {
public:
virtual void plant() = 0;
};
// 小麦栽种策略
class WheatPlantStrategy : public PlantStrategy {
public:
void plant() override {
// 小麦栽种逻辑
std::cout << "小麦栽种逻辑" << std::endl;
}
};
// 稻米栽种策略
class RicePlantStrategy : public PlantStrategy {
public:
void plant() override {
// 稻米栽种逻辑
std::cout << "稻米栽种逻辑" << std::endl;
}
};
// 农场类
class Farm {
private:
PlantStrategy* strategy;
public:
void setStrategy(PlantStrategy* strategy) {
this->strategy = strategy;
}
void plantCrop() {
strategy->plant();
}
};