이렇게 차 객체가 있고
차의 지붕 상태를 나타내는 enum이 있고
차를 청소해주는 세차기가 있다고 쳐
그러면 세차기는 차의 지붕이 열려있는지 닫혀있는지는 알 수 있어야 하지만 그 상태를 설정할 수는 없어야 되잖음?
그러니까 car의 getRoofStatus만 허용되고 나머지는 건들 수 없는 상태여야 되는데 프로그램 어떻게 짜야함?
사람 객체같은 자율의사 갖는 객체들은 지붕 개폐여부 설정할 수 있으니까 setRoofStatus 접근제어자는 public으로 해야될거같은데
아직 님 설계가 덜 된 것 같음
그러니까 만약 이런 상태면 어떻게 해야돼 그걸 몰라서 질문하는거..
어떻게 설계해야되는지를 모름
설계할 때 좀 더 생각해보셈 @Getter @Setter를 취소해볼 생각을 해야지
해당 강사님이 강의 들으면 한번씩 설명해주셨을껀데 @Getter @Setter를 쓰는 순간 public get()이 자동으로 되는거임/ 이거 막으려면 직접 만들어서 짜야지. 설계할 때 그렇게 lombook이나 애너테이션으로 자동화할지 직접 짜야될지 / 또는 다른 메소드를 사용할 지 한번 생각해보고 거기에 맞춰서 짜야되는게 중요한듯
롬복 안쓰더라도 차 객체의 roofStatus에 대한 get set은 public이여야 되지 않아? 사람 객체나 자율운전 AI같은 경우는 get set 다 쓰고 세차기에서는 get만 써야하는데 이 갭을 어떻게 메워야 할까
거기서 한 단계 더 나가서 class는 어떻게 묶을 껀지 어떤 타입의 어떤 변수,메소드가 묶을 껀지 메소드는 어느 정도의 크기를 담당할껀지, 각 함수나 변수 네이밍은 어떻게 할껀지 해당 메소드 로직은 어떻게 할껀지 테스트코드는 어떻게 짤 껀지 이런걸 미리 설계하는게 중요한 능력인 것 같음
그러면 거기에 맞게 설계하면 되지 사람 객체나 자율운전 AI에도 각각 RoofStatus를 받던가, 아니면 get set 다 받는 DTO 타입을 만들고, 세차기에서는 get만 가져오던가
자꾸 말 삭제 되네 CarcleanMeachine에 private status 상태를 변수로 가진 상태에서 getroofstatus함수 만들고 거기 안에서 car.getroofstatus 함수 호출해
내가 님이 아니고 직접 하나하나 다 물어볼 수 있는 상태인지는 모르겠는데 지금상태에서는 Car라는 Dto에서 그냥 get함수를 넘기는 것처럼 가져오는게 맞는 것처럼 보이네
사실 할말은 많은데 내가 님이 아니라서 내부 클래스 로직이 어떻게 되어있길래 저리쓰는지 약간 이해가 안되는데 Car네이밍이 문제인지 DTO를 몰라서 안한건지 일단 보여주는 것만 봐서는 내부로직가져다 쓰셈
내부 클래스 로직같은거 없음 ㅋㅎㅋㅎㅋㅎ 뭐 만들고 있는게 아니고 공부중이라 리팩토링 해봤음 새글쓸게
저 이제 바빠서 공부하러갈꺼임
그럼 세차기가 받을 수 있는 차 타입을 새로 정의해. Washable
전략패턴으로 가자고 응?