
상속을 이용해 기능을 확장한 예시를 들어보자. FileOut은 데이터를 파일에 출력하는 기능을 제공한다. 그리고 BufferedOut과 ZipOut은 각각 버퍼 기능과 압축 기능을 추가 제공한다. 그런데 만약 버퍼 기능과 압축 기능을 함께 제공하고 싶다면 어떻게 해야 할까? 이렇게 하위 클래스를 추가해서 구현할 수 있다. 이 방법은 직관적이지만 추가할 수 있는 기능이 많아질 경우 클래스의 개수가 지나치게 많아질 수 있다는 문제가 있다. 이럴 때 사용할 수 있는 것이 바로 데코레이터 패턴이다. 데코레이터 패턴은 상속이 아닌 '위임' 방식으로 기능을 확장한다. 구조가 조금 복잡해보이니 코드를 통해 이해해 보자. public abstract class Decorator implements FileOut { p..
OOP
2021. 6. 28. 14:39
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 토비
- SOLID
- 템플릿콜백
- 서비스추상화
- 프록시
- 메서드레퍼런스
- OOP
- 프로그래머스
- BOJ
- 자바스터디
- 데코레이터패턴
- AOP
- 자바
- ec2
- gracefulshutdown
- 김영한
- 프록시패턴
- 카카오
- java
- 토비의스프링
- provider
- c++
- 스프링
- 객체지향
- 예외처리
- 토비의봄TV
- 디자인패턴
- 백기선
- 코테
- 코딩테스트
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함