본문 바로가기
IT기술노트/소프트웨어공학

클래스 재사용

by 비트코기 2021. 1. 31.
반응형

화이트박스, 블랙박스, 위임


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

댓글