사용자 인터페이스에서 사용자 도메인 개체를 직접 사용해야하는지 잘 모르겠습니다. 예를 들어, 사용자 ID, 이름, 암호 및 역할 목록이있는 도메인 사용자 사용자에 대한 사용자 인터페이스를 설계하고자합니다. 엔티티은 (예를 들어 잘못된 암호 또는 빈 userId를) 유효하지 않은 상태에서도메인 모델 및 사용자 인터페이스
public class User {
public User(String userId, String name, String password) {
//Initialization and validation
}
public String getUserId {
/*implementation*/
}
public void changePassword(String oldPassword, String newPassword) {
/*Set new password if it complies with the rules
and if the the old one is correct*/
}
public void setName(String Name) {
/*implementation*/
}
public String getName() {
/*implementation*/
}
public List<Role> getRoles() {
/*implementation*/
}
public void addRole(Role role) {
/*implementation*/
}
}
사용자 인터페이스를 디자인하는 가장 적절한 방법은 무엇입니까 결코 수있는 방식으로 설계되었습니다?
1) 도메인 모델에 충실하십시오 : 디자인 3 windows. "새 사용자"창은 주어진 사용자 ID, 이름 및 암호로 새 사용자를 만듭니다. 암호를 변경하기위한 다른 암호 "Change password"와 기존 사용자의 이름과 역할을 수정할 수있는 "Modify user"
2) 사용자를 생성 할 때 하나의 창만 사용하는 것이 바람직 할 수 있습니다. 주어진 userId, 이름, 암호 및 역할 목록. userId를 아직 입력하지 않은 경우에도 역할을 추가 할 수 있어야합니다.
사용자 인터페이스에서 도메인 개체를 직접 사용할 수 있으므로 옵션 1을 구현하는 것이 가장 쉽습니다. 그러나 사용자 인터페이스는 사용하기에 고통 스러울 수 있습니다. 옵션 2는 바람직하지만 도메인 객체는 직접 사용할 수 없습니다. 사용자가 아직 생성되지 않은 경우 역할을 추가하는 방법을 알 수 없습니다. 나는 그 순간에 올바른 정보가 없을 수도 있기 때문에 사용자를 생성 할 수 없습니다. 예를 들어 userId를 나타내는 임시 빈 텍스트 상자가 있습니다. 이것을 어떻게 할 수 있습니까?
내가 생각할 수있는 유일한 유일한 해결책은 실제 도메인 개체의 정보를 모방 한 사용자 인터페이스에서 사용할 클래스를 만드는 것입니다. 따라서 빈 사용자를 만들어 역할을 추가 한 다음 그 후에 userId를 설정할 수 있습니다. 사용자 인터페이스는이 정보를 사용하여 실제 도메인 객체를 생성 할 수 있습니다.
쉬운 방법이 있습니까? 이 방법은 일반적으로 어떻게 관리됩니까?