模板方法模式与非虚接口:C++ 中的设计优化
1. 模板方法模式简介
模板方法模式允许我们定义一个算法的骨架,将一些步骤的实现延迟到子类中。这样可以避免代码重复,提高代码的可维护性和可扩展性。
在一个游戏角色的例子中,我们定义了一个抽象基类 Character :
virtual void CombatAction() = 0;
protected:
int health_;
};
每个派生类只需要实现其独特的代码部分。例如, Swordsman 和 Wizard 类:
// Example 03
class Swordsman : public Character {
bool wielded_sword_;
public:
bool MustFlee() const override { return health_ < 5; }
bool Ready() const override { return wielded_sword_; }
void GetReady()override { Wield(); }
void CombatAction()override { Attack(); }
};
class Wizard : public Character {
int mana_;
bool scroll_ready_;
publ
超级会员免费看
订阅专栏 解锁全文
1237

被折叠的 条评论
为什么被折叠?



