In der Vergangenheit habe ich in der Regel den größten Teil meiner Manipulation eines Objekts innerhalb der primären Methode durchgeführt, die erstellt / aktualisiert wird. In letzter Zeit habe ich jedoch einen anderen Ansatz gewählt und bin gespannt, ob dies eine schlechte Praxis ist.
Hier ist ein Beispiel. Angenommen, ich habe ein Repository, das eine User
Entität akzeptiert , aber vor dem Einfügen der Entität rufen wir einige Methoden auf, um sicherzustellen, dass alle Felder auf das eingestellt sind, was wir wollen. Anstatt Methoden aufzurufen und die Feldwerte innerhalb der Insert-Methode festzulegen, rufe ich jetzt eine Reihe von Vorbereitungsmethoden auf, die das Objekt vor dem Einfügen formen.
Alte Methode:
public void InsertUser(User user) {
user.Username = GenerateUsername(user);
user.Password = GeneratePassword(user);
context.Users.Add(user);
}
Neue Methoden:
public void InsertUser(User user) {
SetUsername(user);
SetPassword(user);
context.Users.Add(user);
}
private void SetUsername(User user) {
var username = "random business logic";
user.Username = username;
}
private void SetPassword(User user) {
var password = "more business logic";
user.Password = password;
}
Ist es grundsätzlich eine schlechte Praxis, den Wert einer Immobilie anhand einer anderen Methode festzulegen?
user
der Code als Referenz übergeben würde, könnte er dem Anrufer aus den Händen gezogen und durch einfaches Sagen von beispielsweise ersetzt werden user = null;
.