객체의 값을 외부에 노출할 때 또한 방어적 복사를 통해 보호해야 한다. > 이것은 Joshua Bloch 의 책 "Effective Java" 에서 논의됩니다 . "필요할 때 방어적인 복사본 만들기" 라는 섹션이 있습니다 (2판의 섹션 39). Getter에서 참조
우아한 태크코스 사다리 미션 Step2 PR을 보내고 서브 미션 리스트 구현하기를 Step2를 구현하다가 Step2가 머지되었다. 기존작업물을 Step3에 옮기려면 어떻게 해야할까? main 브랜치에서 Step3 브랜치를 만들어야한다. 작업물을 커밋하지 않고 브랜
디미터의 법칙(Demeter's Law)은 객체 지향 프로그래밍에서의 설계 원칙 중 하나로, "하나의 모듈이 다른 모듈과 상호작용할 때 이 모듈은 가능한 적은 정보에 대해서만 알아야 한다"는 원칙입니다. 이 법칙은 객체 지향 프로그래밍에서 객체 간의 결합도(coupli
하위 클래스에서 구체적으로 처리하는 디자인패턴템플릿 메소드 패턴에서는 이러한 부모의 자식 간의 의존성 방향을 부모가 자식을 아는 방향으로 역전시키게 된다. 일반적으로는 자식이 부모의 세부구현을 알고서 이를 이용하는 쪽으로 상속이 일어나지만, 템플릿 메서드 패턴에서는 부
제네릭의 장점1\. 타입 안정성을 제공한다.2\. 타입체크와 형변환을 생략할 수 있으므로 코드가 간결해진다.객체의 타입을 미리 명시해줌으로써 번거로운 형변환을 줄여준다.기존에는 다양한 종류의 타입을 다루는 메서드의 매개변수나 리턴타입으로 Object타입의 참조변수를 많
캡슐화(Encapsulation)란 데이터와 그 데이터를 다루는 메서드를 하나의 단위로 묶는 것을 의미합니다.정적(static) 메서드만이 담긴 유틸리티 클래스는 좋은 객체를 인스턴스화할 수 없다. 좀 더 일반적으로 말하자면 유틸리티 클래스는 이번 글에서 언급한 이점을