2012-03-26 14 views
0

In einem aktuellen Code-Refactor erfülle ich eine Idee, die die Datenverarbeitung von den Daten selbst isoliert. Es ist eine Art "Verantwortungskette" - Verarbeitungseinheiten, die die Fähigkeit bieten, mit den Daten innerhalb eines bestimmten Geschäftsbereichs umzugehen, während Datenobjekte über die gesamte Verarbeitungskette weitergegeben werden.Gibt es eine elegante Möglichkeit, zu verhindern, dass eine Klasse private Daten speichert?

Eine weitere Optimierung erfolgt durch "Singletonisieren" der Verarbeitungskette-Instanz. In Anbetracht des möglichen Konkurrenzproblems ist es wünschenswert, jegliche private Datenreferenz in diesen Verarbeitungseinheiten zu eliminieren.

Also frage ich mich, ob es ein Programmierparadigma gibt, das anderen Programmierern nahelegen könnte, dieses Muster anzupassen, während sie in der Zukunft Modifikationen vornehmen.

Vielen Dank im Voraus ~

+1

Ich möchte nur darauf hinweisen, dass das, was Sie tun, ist sehr ähnlich zu dem "anämischen Modell" Design (Anti) -Muster. Persönlich bin ich dagegen. OO Design (was ich mag) basiert auf Daten und ihre Operationen an einem Ort. Hier ist Martin Fowlers Ansatz: http://martinfowler.com/bliki/AnemicDomainModel.html –

+0

baute ein * APT * -Tool. – fwonce

Antwort

1

Das Prinzip "Service Staatenlosigkeit" genannt. Im Service-orientierten Design-Paradigma sollen die Dienste zustandslos sein, also haben sie keine privaten Daten. Staatenlosigkeit wird benötigt, um die Skalierbarkeit zu unterstützen.

UPDATE: Wenn Sie einige Statusdaten (Kontext, Sitzung, Geschäft) benötigen, gibt es eine elegante Möglichkeit zu verhindern, dass die Klasse private Daten enthält, die als Statusverwaltungsdelegation und Zustandsverzögerung bezeichnet werden. Das Beispiel für eine Standardverzögerung könnte eine dedizierte Datenbank/Tabellen sein, die von Ihren Komponenten zum Schreiben des Zustands und zum späteren Abrufen verwendet werden.