【发布时间】:2010-08-16 14:23:13
【问题描述】:
设置:
必须生成伪随机模式。有几种方法/或算法可用于创建不同的内容。所有算法都会生成一个字符列表(但可以是其他任何字符)......重要的是,它们都返回相同类型的值,并且需要相同类型的输入参数。
必须可以调用 GetRandomPattern() 方法,每次调用时都会使用一种随机算法。
我的第一个方法是将每个算法放在它自己的函数中,并在每次调用 GetRandompattern() 时随机选择其中一个。但是我没有想出另一种在它们之间进行选择的方法,而不是使用不方便、丑陋和不灵活的 switch case 语句。
class PatternGenerator{
public:
list<char> GetRandomPattern();
private:
list<char>GeneratePatternA(foo bar);
list<char>GeneratePatternB(foo bar);
........
list<char>GeneratePatternX(foo bar);
}
每次调用 GetRandomPattern() 方法时选择随机 GeneratePattern 函数的好方法是什么?
还是应该对整个班级进行不同的设计?
非常感谢
【问题讨论】:
-
这正是策略模式的设计目的:-)
标签: c++ design-patterns random function-pointers