MVC 패턴 예제 생정자&오버라이드
5강에서 기재한 MVC 패턴 예제에서 데이터를 생성자 및 오버라이드 추가하기
수정한 예제 코드)
- dto 패키지 => PhoneInfo
public PhoneInfo(){}
public PhoneInfo(String name, String phone, String birth, int age) { // Contract
this.name = name;
this.phone = phone;
this.birth = birth;
this.age = age;
}
@Override
public String toString() {
String str = "이름 : " + name + "\n"
+ "연락처 : " + phone + "\n"
+ "생일 : " + birth + "\n"
+ "나이 : " + age;
return str;
}
- PhoneInfo 클래스 내에 해당 코드를 수정
// 한 명분의 연락처 생성
PhoneInfo pInfo =
new PhoneInfo(name, phone, birth, age);
/*
PhoneInfo pInfo = new PhoneInfo();
pInfo.setName(io.inStr("이름 : "));
pInfo.setPhone(io.inStr("전화번호 : "));
pInfo.setBirth(io.inStr("생일(mm-dd) : "));
pInfo.setAge(io.inNum("나이 : "));
*/
// 연락처 목록에 연락처 추가
입력 메소드에서 setter를 이용해 하나씩 대입시켰던 이전과는 달리 Contract를 이용하여 매개변수에 입력한 값을 대입할 수 있도록 했다.
for(i = 0; i < book.size(); i++) {
p = book.get(i);
if(sname.equals(p.getName())){
/*
io.twoPrint("이름 : " + p.getName());
io.twoPrint("전화번호 : " + p.getPhone());
io.twoPrint("생일 : " + p.getBirth());
io.twoPrint("나이 : " + p.getAge());
*/
io.twoPrint(p.toString()); // PhoneInfo의 toString Override
io.twoPrint("------------------");
break; // for(루프)를 멈추는 break 사용
}
} // for end
출력/검색/수정/삭제 메소드에서 twoPrint를 이용해 이름/전화번호/생일/나이를 일일이 가져왔던 코드와는 달리 toString을 Override함으로써 코드를 간소화시킬 수 있다.