해당 클래스에서 사용할 메서드는 그 클래스 내부에 선언되어야 하는가?
헌데 그 메서드가 범용성이 높다면?
다른 클래스에서도 사용 빈도가 높은 함수라면
코드의 재 사용성을 고려하지 않고 서로 각각의 메서드에
이중 저장을 하는게 나을까?
객체지향에서 말하는 캡슐화의 기준점이 무엇인가?
본 과제를 진행하며 팀원(나보다 잘함)과 의견이 대치되는 부분이 발생했다.
일단은 내가 맡은 파트에서 내가 작성한 코드라 마찰이 발생하거나 그러지는 않았다.
다만 나는 아직 객체지향을 이해해가는 과정에 있기 때문에
내 방법과 팀원의 방법을 두고 고민해 보게 되었다.
public static Date inputStringToDate () {
// scanner 를 갖고 있음.
// Str ( 000000 ) -> Date
// 예외 처리 탑재
// return Date
String date;
Date returnDate;
SimpleDateFormat format = new SimpleDateFormat("yyMMdd");
format.setLenient(false);
while (true) {
date = scanner.nextLine();
try {
returnDate = format.parse(date);
return returnDate;
} catch (ParseException e) {
System.out.println("날짜를 다시 입력해주세요.");
}
}
}
외부에서 입력받은 String
타입의 6자리 숫자를 Date
로 변환시켜 반환해주는 메서드를 만들어 Functions
라는 클래스 내부에 위치시켰다.
본 과제에서는 크게 호텔관리자, 사용자(예약), 사용자(조회 및 취소) 이렇게 세가지가 존재하는데
호텔 관리자와 사용자가 서로 상속 관계에 있지 않기 때문에 날짜 조회를 위한 Date
타입의 입력을 받을 때 Functions
에 존재하는 inputStringToDate
필요한 부분에서 불러와 쉽게 처리하는 방법을 기대했다.
관련 클래스와 메서드끼리 하나로 묶어 관리하는 것이 객체지향이라면 재사용성 높은 기능들을 따로 빼 하나로 묶어 독립성을 보장하는것도 객체지향으로 판단할 수 있지 않을까? 하는 생각을 근거로 두었다.
다만 팀원의 의견을 듣고 고민하다보니 이 역시 약점이 있다는걸 깨닫게 되었다.
분명 독립성을 보장하고 있지만 반대로 보자면 Functions
하나에 다른 모든 메서드들의 목숨줄이 달린 상황 아닐까.
아직 이렇다 한 결론을 내리지는 못했다. 다만 장기적으로 시간을 들이더라도 나만의 기준점을 명확히 하는것이 중요하다 생각한다.
쓰레기통
public String returnDateToString(Date date){
SimpleDateFormat a = new SimpleDateFormat("yyyyMMdd");
String str;
str = a.format(date);
return str;
}
무지성으로 Functions
을 만들어 내다 보니 이런 쓰레기를 만들어버렸다...
완성 시점에서 보니 이제야 눈에 들어오게 된터라 이제와서 바꾸기에도 좀 그렇다 ㅋㅋㅋ
부디 팀원들이 눈치 못챘으면 좋겠다...
'TIL' 카테고리의 다른 글
2023년 10월 31일 상속과 포함 (0) | 2023.10.31 |
---|---|
2023년 10월 30일 mapToInt() (0) | 2023.10.30 |
2023년 10월 28일 (0) | 2023.10.30 |
2023년 10월 27일 (0) | 2023.10.28 |
2023년 10월 26일 (1) | 2023.10.26 |