next up previous
Objektpersistenz und ERZEUGER-Pattern


Weiterer Klassenentwurf

 
// ...
GeoObj* IOFactory::CreateGeoObj(const String& TypeString)
{
  GeoObj* pProto = (*pPrototypes)[TypeString];
  GeoObj* pClone = NULL;

  if(pProto)
    pClone = pProto->Clone();
  else
  {
    cerr << "Error in GeoObj factory:"<< endl
         << "  could not find prototype for a "
         << TypeString << endl;
    return NULL;
  }

  if(pClone)
    _SaveGeoObj(pClone);
  else
  {
    cerr << "Error in GeoObj factory:"<< endl
         << "  could not clone prototype for a "
         << TypeString << endl;
    return NULL;
  }

  return pClone;
}
// ...


next up previous