Design/strategy/Strategy.hpp
2024-10-28 14:07:29 +08:00

48 lines
848 B
C++

/*
* @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();
}
};