- 강의
- 63강(멀티 쓰레딩 프로그래밍) ~ 64강(디자인 패턴 소개)
- 깃허브 : https://github.com/kung036/java_task/tree/test/src/practice/day20240517
디자인 패턴
- 디자인 패턴 : 소프트웨어 디자인 과정의 전형적인 해결책
- 디자인 과정 : 코드 구현 전 설계 과정\
- GoF(Gang of Four)
- Java 디자인 패턴
- 비즈니스 별 최적의 설계 노화우
- 배우는 이유
- 사내 업무 의사소통에 자주 사용
- 프레임워크와 라이브러리 내부에 구현되어 있음
- 종류
- 생성 패턴 : 기존 코드의 유연성과 재사용성 증가하는 매커니즘 제공
- 구조 패턴 : 객체들과 클래스들을 구조를 유연하고 효율적으로 유지하면서 더 큰 구조로 조립
- 행동 패턴 : 알고리즘 및 객체 간의 책임 할당
- 생성 패턴
- 팩토리 메서드
- 추상 메서드
- 프로토타입
- 빌더
- 복잡한 객체의 생성 과정 단순화 → 가독성과 유연성이 높은 객체 생성
- 구현 : 정적 내부 클래스, 내부 this 변환
- 사용 예시 : 생성자를 통해서 객체 생성 시, 인자값을 잘못넣을 수 있는 문제 발생
- 예시 깃허브 : https://github.com/kung036/java_task/tree/test/src/practice/day20240517/builder
- 싱글톤
- 단 하나 인스턴스만 생성해서 공유함으로서 자원 절약 및 일관성 유지
- 예시 깃허브 : https://github.com/kung036/java_task/tree/test/src/practice/day20240517/singleton
- 구조 패턴
- apdator
- bridge
- 복합체
- pasade
- flyweight
- decorator
- 기존 객체 변경 없이 동적으로 기능 추가 및 수정하는 디자인 패턴
- 사용하는 상황
- 기존 객체에 여러 옵션 및 기능 추가가 필요한 경우
- I/O Stream : 보조 Stream이 데코레이터 패턴으로 구현된 것
- 깃허브 코드 : https://github.com/kung036/java_task/tree/test/src/practice/day20240517/decorator
- 행동 패턴
- 책임 연쇄
- 커맨드
- 반복자
- 중재자
- 메멘토
- 옵서버
- 상태
- visitor
- 템플릿 메서드
- 전략
- 동적으로 교체 가능한 전략 제공
- 객체 관계를 유연하게 만드는 디자인
- 구현 : 인터페이스, setter, 다형성
- 사용 : 변경이나 수정이 잦은 내부 정책 클래스
- 깃허브 코드 : https://github.com/kung036/java_task/tree/test/src/practice/day20240517/strategy
'슈퍼코딩 > 주특기(JAVA)' 카테고리의 다른 글
2024.05.20(월) 슈퍼코딩 신입연수원 8주차 Day 1 후기 - annotation, meta programming, gradle (0) | 2024.05.20 |
---|---|
슈퍼코딩 신입연수원 7주차 후기 (0) | 2024.05.18 |
2024.05.16(목) 슈퍼코딩 신입연수원 7주차 Day 4 후기 - 신입 개발자 역량, 메소드 레퍼런스, 멀티 쓰레딩 프로그래밍 (0) | 2024.05.16 |
2024.05.15(수) 슈퍼코딩 신입연수원 7주차 Day 3 후기 - I/O Stream, client-server, 직렬화/역직렬화 (0) | 2024.05.15 |
2024.05.14(화) 슈퍼코딩 신입연수원 7주차 Day 2 후기 - 유틸리티 클래스, 내부 클래스, 람다식, stream (0) | 2024.05.14 |