Wenn Sie in einer Sprache arbeiten, die dies unterstützt, würde ich eine Speichermethode bereitstellen, die einen Stream verwendet. Auf diese Weise kann der Benutzer die Daten speichern, wo immer er möchte.
Das Schreiben dauert 20 Sekunden länger als das Speichern nur in einer Datei, ist jedoch für einen Programmierer leicht verständlich, und an der aufrufenden Site ist sehr klar, was tatsächlich passiert.
Die Art und Weise, wie Sie es beschrieben haben (ein Objekt, das Eingaben liest und in eine andere Datei ausgibt), erscheint ansonsten seltsam. Was ist der Zweck, ein Objekt zu konstruieren, das während der Konstruktion alles macht?
Würden Sie es so nennen?
var stuff = DoStuff();
new SaveFileWeirdClass(stuff);
return;
Für eine vernünftige Implementierung von SaveFileWeirdClass würde ich keine Nebenwirkungen erwarten, wenn ich es nur erstelle. Eine Datei lesen - gut. Eine Datei erstellen? Nein.
Mir scheint es so klarer:
var stuff = new StuffReader(); //Better name needed...
string filePath = this.whatever;
using(Stream stream = new FileStream(filePath))
stuff.Save(stream);