-
[디자인 패턴] 객체지향 프로그래밍과 객체지향 설계디자인 패턴 2022. 6. 30. 16:55
* 추상화
어떤 영역에서 필요로 하는 속성이나 기능을 추출하는 작업
데이터 구조, 표현 방법에 대한 추상화
처리 과정에 대한 추상화* 캡슐화
데이터를 감싸서 외부에서 사용 가능한 부분만을 제공 (ex. private 접근 제어자)
클라이언트 코드가 세부적인 사항을 알 필요가 없음
단순한 접근을 제공하여 오류가 생길 부분을 감소함* 상속성
일반적인 개념의 객체에서 보다 구체적인 개념의 객체의 관계를 표현함
(상위 클래스는 일반적인 개념을 가지고 하위로 갈수록 구체적)
상속관계의 클래스는 상위 클래스의 타입을 내포하고
상위 클래스의 속성과 기능을 하위 클래스에서 사용하거나 재정의 할 수 있음
클래스간의 결합도가 높아짐(수정에 대한 영향이 높아짐) - 하나의 타입으로 핸들링* 다형성
같은 메세지 같은 구현에 대해 각 객체가 다른 표현과 결과를 나타내는 것
클래스의 상속, 인터페이스 구현 시, 각각 다른 구현을 가진 클래스들이
상위 타입으로 업캐스팅되고 오버라이딩한 메서드가 있을 때, 다른 인스턴스에 메서드가 호출* 객체 지향 설계
추상 클래스 VS 구체 클래스
상속 VS 합성
...
잘만들어진 소프트 웨어는 응집도는 높고 결합도는 낮아야함- 응집도
하나의 모듈, 객체 내부의 요소들간의 연관성
하나의 책임을 구현하는 하나의 객체는 높은 응집도를 가진다.
(학생에 대한 객체는 학생에 대한 것에만 책임을 구현한다.)- 결합도
객체 상호간의 연관관계
결합도가 높으면 하나의 객체를 수정할 때 다른 객체도 수정해야한다.'디자인 패턴' 카테고리의 다른 글
[디자인 패턴] 하위 클래스에 위임하기 (0) 2022.06.30 [디자인 패턴] 클래스의 인스턴스를 생성하는 패턴들 (0) 2022.06.30 [디자인 패턴] 클래스 다이어그램 (0) 2022.06.30 [디자인 패턴] SOLID 원칙 (0) 2022.06.30 [디자인 패턴] 디자인 패턴이란? (0) 2022.06.30