[엘레강트 오브젝트] 2-1장 가능하면 적게 캡슐화하세요

유사개발자·2022년 5월 30일
0
post-thumbnail

🌵가능하면 적게 캡슐화하세요

이 장의 내용은 클래스에 4개 또는 그 이하의 객체를 캡슐화 할 것을 권장한다. 더 많은 객체를 캡슐화해야 한다면 해당 클래스에 문제가 있는 것이므로 리팩토링이 필요하다고 한다.

즉 캡슐화를 적게 가져가 유지보수성을 높이라는 뜻

다음으로

Java의 결함을 해결하기 위해 == 연산자를 사용하지 말고 항상 equals()메서드를 재정의 하여 사용하세요.

라고한다. 이 부분은 좀 의아했다 equals()메서드만 재정의하게 되면 hashcode()도 같이 재정의 하는것이 좋은데
(나중에 hash값을 사용하는Collection(HashSet, HashMap, HashTable)을 사용할때 문제 발생)
equals()메서드만 재정의 하라고 나와있다. 암튼 equals()메서드와 hashcode()둘다 재정의 하게 되면
값 객체 즉 VO객체가 되는데 모든 객체를 값 객체로 만들라는건 동의하기 어려웠다

!!하지만 뒷장에서 모든 객체를 불변객체로 만들라는 부분을 읽고 생각이 조금 바뀌었다. 모든 객체를 불변 객체로 만들게 되면 객체를 변환 할 수 없기 때문에 위와 같이 의도치않은 값의 변경도 일어나지 않을거라 생각했기 때문이다.

느낀점

그동안 내가 자바를 사용하던 프로젝트는 비교적 가벼운 프로젝트였기에 유지보수성을 크게 신경쓰지 않았다. 하지만 이 책에선 객체지향을 최대한 활용하여 유지보수성을 극대화 시키는 방법에 대해 설명하는것 같다 고로 내가 자바를 대하던 방법과 저자가 설명하는 자바와의 차이점을 느껴보며 이 책을 읽어봐야 할 것 같다.

profile
개발자와 유사한 개발자입니다

0개의 댓글