effectivejava
-
Generic과 raw-type 그리고 비검사 경고CS/Java (with Effective) 2022. 4. 28. 16:25
해당 글은 Effective Java item26, item27을 기반으로 합니다. 로 타입은 사용하지 말라. 비검사 경고를 제거하라. Generic 파트는 엄청 긴 것도 아니거니와.. 객체를 선언하고 Generic을 통해 타입 선언 등에 있어서 주의할 점이 많을 것 같아 웬만하면 싹다 훑고 가려합니다. item 26. raw 타입은 사용하지 말라. 우선 Generic class, Generic Interface란, 아래와 같이 선언에 있어 타입 매개 변수를 사용한 경우를 의미합니다. public interface List extends Collection { ... } 해당 코드는 대표적인 제네릭 인터페이스 List의 선언부입니다. 원래는 List로 표현하는게 맞지만, 단순히 List라고도 선언할 수 ..
-
Composition vs extendsCS/Java (with Effective) 2022. 3. 2. 15:08
해당 글은 Effective Java Item18을 기반으로 합니다. 상속보다는 컴포지션을 사용하라. 해당 글에서 상속은 인터페이스의 상속(implements)은 포함하지 않습니다. '상속(extends)은 메서드 호출과 달리 캡슐화를 깨트린다.' 즉, 상위 클래스가 어떻게 구현되는냐에 따라 하위 클래스가 오작동 할 수 있다는 뜻입니다. 상위 클래스 구현이 변경되는 경우 하위 클래스 또한 변경해야할 수도 있는 것이죠. 따라서, 이러한 문제점을 방지하기 위해 composition의 사용을 제안하고 있는데요. composition이 무엇인지 살펴보고, 상속시 발생할 수 있는 문제점, 그리고 어떤 경우에 composition 또는 extends를 사용하는지에 대해 알아보겠습니다. Composition 기존 클..