Closed swarnat closed 10 years ago
Ich denke, die Ersetzung im Konstruktor des IBANGenerators vorzunehmen wäre keine gute Idee. Der IBANGenerator soll so gut wie möglich von der Implementierung der Regeln entkoppelt sein und verwendet daher eine Factory zur Erstellung der Regeln. Vor allem, wenn man bedenkt, dass es später noch weitere RuleFactories für andere Länder geben könnte, müsste man spätestens dann an dieser Stelle anpassen und die Ersetzung in die konkrete RuleFactory ziehen.
Ich habe die Ersetzung nun am Anfang der createIBANRule() Methode der RuleFactory eingebaut (https://github.com/jschaedl/Iban/commit/98440cb46af67400f7b470b38515087dba413464).
Sollte es später dann wirklich weitere RuleFactories geben, kann man aus der vorhandenen RuleFactory Template Methoden abstrahieren und die "speziell deutsche" Bankleitzahlen Ersetzung wäre dann schon mal an der richtigen Stelle.
Da die nächste BLZ wirklich in jedem Fall zu verwenden ist und global für alle BLZ vorliegt, wäre mein Vorschlag, diese direkt in "IBANGenerator::_construct" auszuwerten, damit auch direkt die RuleFactory gleich korrekt erstellt wird.
Ich habe jetzt nicht die konkrete Regel im Kopf, aber einige nutzen diese Funktion um die BLZ automatisch auszutauschen und dann einfach Regel 000000 anzuwenden.