과거에는 일반적으로 객체가 생성 / 업데이트되는 기본 방법 내에서 대부분의 객체 조작을 수행했지만 요즘 다른 접근법을 취하고 있으며 나쁜 습관인지 궁금합니다.
다음은 예입니다. User
엔터티 를 허용하는 리포지토리가 있지만 엔터티를 삽입하기 전에 모든 필드가 원하는 것으로 설정되도록 메서드를 호출합니다. 이제는 메서드를 호출하고 Insert 메서드 내에서 필드 값을 설정하는 대신 개체를 삽입하기 전에 모양을 만드는 일련의 준비 메서드를 호출합니다.
오래된 방법 :
public void InsertUser(User user) {
user.Username = GenerateUsername(user);
user.Password = GeneratePassword(user);
context.Users.Add(user);
}
새로운 방법 :
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;
}
기본적으로 다른 방법에서 속성 값을 설정하는 것은 나쁜 습관입니까?
user
참조로 전달 된 경우 코드는 호출자의 손에서 코드를 빼내고 간단히 말하기 만하면 user = null;
됩니다.