Ich habe eine Klasse XmlReader, die liest ein XML und eine Klasse Point, die einen Punkt darstellt. Ein Punkt kann verschiedene Typen haben, die verschiedenen Typen werden durch eine Aufzählung innerhalb der Klasse Point beschrieben.Design eines XML-Lesers
class XmlReader {
void read()
{
string typeReadFromXML;
vector<double> coordinates;
Point* pt = newPoint(typeReadFromXML, coordinates);
// OR
//string typeReadFromXML;
//PointType type= XMLReader::conversion(typeReadFromXML);
//vector<double> coordinates;
//Point* pt = newPoint(type, coordinates);
}
};
class Point {
Point(string type, vector<double> v)
{
_type = conversion(type);
}
Point(PointType type, vector<double> v)
{
_type = type;
}
private:
enum PointType {
type1,
type2
};
PointType conversion(string){}
PointType _type;
vector<double> _coords;
};
Ist es in Ordnung, um die Umwandlung von einem String zu meinen benutzerdefinierten Typ in der Point-Klasse zu tun, oder ist es vorzuziehen, diese Umwandlung in dem Leseverfahren der XmlReader-Klasse zu tun?
Das Problem mit einer Zeichenfolge in einen PointType in der Punktklasse Umwandlung ist, dass wenn
ich die Keywords meiner XML-Format zu ändern, ich werde auch die Punktklasse ändern müssen (dh die Umwandlung Methode). Was denken Sie ?