화이트박스, 블랙박스, 위임 |
I. 개발기간 단축을 위한 클래스 재사용의 개요
가. 클래스 재사용의 정의
- 개발시간을 단축하기 위해 기존 클래스를 이용하여 신규 클래스를 만드는 방법으로 재사용성, 응집도를 높이고 결합도를 최소화하도록 모듈화 관점에서 구현
나. 클래스 재사용 방법
재사용 방법 |
설명 |
화이트박스 재사용 |
일반화/상세화의 관계나 상속 구조를 통해 클래스의 구현사항을 재사용 |
블랙박스 재사용 |
객체의 내부는 공개하지 않고 인터페이스를 통해서 재사용 |
위임(화이트+블랙) |
합성을 상속만큼 강력하게 만드는 방법으로 객체간 결합도를 낮추는데 사용 |
매개변수화 타입 |
타입을 정의할 때 타입이 사용하는 모든 타입을 다 지정하지 않은 채 정의 |
II. 화이트박스/블랙박스 재사용
가. 화이트박스 재사용(클래스 상속)의 정의
- 부모 클래스로부터 상속받아 한 클래스의 구현을 정의하는 서브 클래스에 의한 재사용 기법
나. 블랙박스 재사용(객체 합성)의 정의
- 객체 인터페이스를 이용하여 객체를 조립하고 결합하여 시스템을 구성하는 방법
다. 화이트박스/블랙박스의 개념도
화이트박스 재사용 특징 |
- 구현이 용이 - 오버라이딩 |
|
블랙박스 재사용 특징 |
- 종속성 탈피 - 캡슐화 유지 |
라. 화이트박스 재사용의 문제점
- 캡슐화의 파괴, 변경의 파급력 확대, 구현의 종속성
마. 화이트박스/블랙박스 재사용과 위임의 패턴과의 관계
기법 |
적용방식 |
적용패턴 |
화이트박스 재사용 |
- 일반화 또는 상세화 및 상속을 통해 객체 재사용 - 내부적 메소드 또는 변수를 이용하여 재사용 |
- Adaptor, Decorator |
블랙박스 재사용 |
- 객체 합성(Composition)을 통해 객체 재사용 - 객체 자체의 외부적 기능을 합성하여 재사용 |
- Proxy, Composite |
위임 |
- 객체의 조작 일부를 다른 객체에게 넘겨 수행 |
- Adaptor, State, Strategy - Template, Method |
'IT기술노트 > 소프트웨어공학' 카테고리의 다른 글
리팩토링(Refactoring) (0) | 2021.02.01 |
---|---|
TDD(Test-Driven Development) (0) | 2021.02.01 |
웹 접근성(Web Accessibility) (0) | 2021.02.01 |
UX (User eXperience) (0) | 2021.02.01 |
디자인패턴(Design Pattern) (0) | 2021.01.31 |
MSA(Micro Service Architecture) (0) | 2021.01.31 |
콜백함수 (0) | 2021.01.31 |
IoC (Inversion of Control) (0) | 2021.01.31 |
댓글