VO는 다음과 같은 과정으로 생성한다.
1. public class 생성
2. [implements Serializable (입출력 가능한 객체)] - 객체를 파일에 저장하기 위한 장치.
3. 생성자
- no_args
- 전체 인스턴스 초기화 생성자
- +a 필요한 생성자 생성.
4. private instance 변수 생성
5. public setter/getter 메소드
6. toString() Overriding -> instance variable 값들을 하나의 문자열로 return 하도록 재정의
7. equals() / hashCode() : overriding
- instance variable 값이 같으면 같은 객체가 되도록 재정의
public class Customer implements Serializable{ private String id; private String password; private String name; private String email; private String phoneNumber; private int mileage; public Customer() { super(); } public Customer(String id, String password, String name, String phoneNumber, String email, int mileage) { super(); this.id = id; this.password = password; this.name = name; this.email = email; this.phoneNumber = phoneNumber; this.mileage = mileage; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public int getMileage() { return mileage; } public void setMileage(int mileage) { this.mileage = mileage; } @Override public String toString() { return "Customer [id=" + id + ", password=" + password + ", name=" + name + ", email=" + email + ", phoneNumber=" + phoneNumber + ", mileage=" + mileage + "]"; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((email == null) ? 0 : email.hashCode()); result = prime * result + ((id == null) ? 0 : id.hashCode()); result = prime * result + mileage; result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((password == null) ? 0 : password.hashCode()); result = prime * result + ((phoneNumber == null) ? 0 : phoneNumber.hashCode()); return result; } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Customer other = (Customer) obj; if (email == null) { if (other.email != null) return false; } else if (!email.equals(other.email)) return false; if (id == null) { if (other.id != null) return false; } else if (!id.equals(other.id)) return false; if (mileage != other.mileage) return false; if (name == null) { if (other.name != null) return false; } else if (!name.equals(other.name)) return false; if (password == null) { if (other.password != null) return false; } else if (!password.equals(other.password)) return false; if (phoneNumber == null) { if (other.phoneNumber != null) return false; } else if (!phoneNumber.equals(other.phoneNumber)) return false; return true; } }
반응형
'JAVA > Design Pattern' 카테고리의 다른 글
Singleton Design Pattern (0) | 2015.03.09 |
---|---|
[Design Pattern] #1. Business Class (Service) (0) | 2015.02.11 |