본문 바로가기
반응형

알고리즘/디자인 패턴5

5. 클래스 관계 (Class Relationships) 안녕하세요. 지칸입니다. 본 글에서는 클래스간의 관계에 대해 설명하겠습니다. 1) 관계의 종류 2) 의존관계 3) 연관관계 4) 집합관계 & 합성관계 5) 상속관계 1) 관계의 종류 객체지향 프로그래밍은 클래스를 정의하고 클래스간의 메시지 패싱으로 소통하며 목적을 달성하는 방식을 의미하고 있습니다. 그리고 다양한 클래스간의 관계에 대해서도 정의가 되어야 합니다. 이 관계는 총 5개로 분류하고 있습니다. Dependency Association Aggregation Composition Inheritance 약한 관계강한 관계 2) Dependency 의존관계 Dependency는 A 클래스가 B클래스를 일시적으로 참조하는 형태를 말합니다. 예를들면, A 클래스의 어느 함수내부에서 B 클래스 인스턴스를 생.. 2021. 3. 15.
4. 인터페이스 interface 란? 안녕하세요. 지칸입니다. 본 글에서는 abstract class, inheritance와 비슷한 interface, implements를 설명하겠습니다. 1) 인터페이스란? 인터페이스는 추상화 클래스와 몇가지 차이점을 제외하면 매우 유사합니다. - 인터페이스는 인스턴스 변수를 가질 수 없다. (정적 클래스 변수는 가능) - 모든 매서드는 추상화 매서드이다. (인터페이스에는 매서드 바디가 없다.) 자바에서는 "interface" keyword를 통해 정의할 수 있으며 오직 추상화 매서드만 가지고 있기 때문에 추상화 클래스보다 상위 개념의 추상화입니다. 자바에서는 "implements" keyword를 통해 구현할 수 있습니다. extends와 implements의 그래프 표현방식이 다르게 생겼습니다. St.. 2021. 3. 12.
3. Object-Oriented Paradigm 예시 안녕하세요. 지칸입니다. 1~2장에 걸쳐서 OOP에 대해 필요한 기본 개념에 대해서 공부해봤습니다. 본 글에서는 OOP를 써야하는 이유를 설명하기 위한 예시를 보여드리겠습니다. class = ADT + Inheritance + Polymorphism 1) 도형 그리기 우리는 Line,Circle,Rectangle 도형 3가지를 그릴 수 있는 함수를 만들려고 합니다. 어떠한 도형을 그려달라고 요청하면 도형 타입을 확인하여 각각의 알맞는 도형을 그린다고 하면 아래와 같은 코드를 만들 수 있습니다. Client 입장에서 Circle를 그리고 싶을 때 renderShape를 호출하고 파라미터로 Circle관련 데이터를 넣어준다면 if-else 조건에 따라 DrawCircle를 호출할 것입니다. Line이였다면 .. 2021. 3. 11.
2. 다형성(Polymorphism) + 추상화( Abstract class)의 예시 안녕하세요. 지칸입니다. 오늘부터 1편에 이어서 몇가지 예시를 정리하려고 합니다. 2021.03.10 - [알고리즘/디자인 패턴] - 1. object-oriented paradigm, OOP, 객체지향 1) 다형성과 추상화, 상속 부모 타입에 자식 인스턴스를 넣을 수 있다는 점! 동적 다형성을 이용하여 인스턴스에 따라 다른 동작을 할 수 있는점! 위 2가지를 사용한 예제를 보여드리겠습니다. 추상화 클래스 Animal 에는 추상화 함수 say()가 존재합니다. 그리고 Cat은 Animal을 상속받고 추상화 함수 say를 오버라이딩 해야합니다. Canine도 Animal을 상속받는 추상화 클래스며 이를 상속받는 Dog 클래스가 있습니다. 마찬가지로, say를 오버라이딩 해야합니다. 위 예시에서는 주어진 클.. 2021. 3. 10.
반응형