注册 登录
编程论坛 C++教室

关于类的设计

suizier 发布于 2007-04-27 19:59, 440 次点击
请教一下,关于类的设计
一个接口类,由选择语句控制实例化后的对象,两个对象分别是BEZIER曲线对象,和自然样条对象,它们有一样的方法
请问大家有没有好的设计思路?
1 回复
#2
jiangzw6252007-05-01 15:04
建议使用类厂模式
class Graph
{
public:
virtual void Paint() = 0;
};

class BezierGraph:public Graph
{
//实现
};

class NaturalGraph:public Graph
{
//实现
};

class GraphFactory
{
public:
GraphFactory();
Graph* GetObject(string object)
{
if(object == "bezier")return new BezierGraph;
else if(object == "natural")return new NaturalGraph;
else
//可以抛出异常或返回0
}
};

//使用
GraphFactory gf;
string str;
Graph* pG = gf.GetObject(str);//这里的参数可以代替你要用的条件语句了,你也注意到了吧,条件语句在GraphFactory里呢。
pG->Paint();
1