SOLID
SRP, OCP, LSP, ISP, DIP 다섯 가지 객체지향 설계 원칙을 주문 유효성 검사, 도형 넓이, 새 클래스 Java 예제와 흐름도로 정리합니다.
SRP, OCP, LSP, ISP, DIP 다섯 가지 객체지향 설계 원칙을 주문 유효성 검사, 도형 넓이, 새 클래스 Java 예제와 흐름도로 정리합니다.
이펙티브 자바 2장 중 생성자 대신 정적 팩터리 메서드를 쓰는 장단점과 명명 방식, 매개변수가 많을 때 점층적 생성자 대신 빌더 패턴과 계층적 빌더를 쓰는 방법을 예제와 흐름도로 정리합니다.
자바의 익명 클래스가 무엇인지 정리하고, 조건만 다른 합계 함수의 중복을 조건 전달로 줄이는 예제, 인터페이스를 이름 없이 구현하는 방법과 람다와의 관계, 사용할 때의 이점을 흐름도와 함께 정리합니다.
Collection을 감싸고 그 외의 멤버 변수를 두지 않는 일급 컬렉션의 정의와 장점 일곱 가지를, 로또 번호를 정렬해 보관하는 LottoNumbers 예제 코드와 함께 정리합니다.
자동차 이름을 String 대신 Name 객체로 감싸는 예제로, 원시 타입 변수를 포장하면 유효성 검증 책임이 값 객체 안으로 옮겨져 Car의 역할이 분명해지는 이유를 정리합니다.
Track에서 Cars를 만들던 반복문을 Cars.from()으로 옮기는 예제로 정적 팩토리 메서드가 객체 생성 로직을 감추는 방식을 살펴보고, from·of·getInstance 등 네이밍 컨벤션을 정리합니다.
자동차 경주 코드에서 이동 여부를 정하는 랜덤 값 생성을 MoveStrategy 인터페이스로 분리하고, 구현 클래스를 주입받아 바꿔 끼우는 전략 패턴 적용 방법을 정리합니다.
객체지향 입문서를 읽으며 낮은 결합도와 높은 응집도, 캡슐화, 상속 같은 핵심 개념을 정리하고 느낀 점을 남긴 독서 리뷰입니다.