Link
Today
Total
07-02 09:34
Archives
관리 메뉴

초보개발자 긍.응.성

1. Object-Oriented Concepts Review 본문

설계패턴(Design Pattern)

1. Object-Oriented Concepts Review

긍.응.성 2019. 10. 28. 00:35
반응형

설계패턴을 배우기전에 필요한 OOP 개념들을 되짚는 수업이다.

 

1. ADT(Abstract Data Type)

 

기능의 구현 부분을 나타내지 않고 순수한 기능이 무엇인지 나열한 것

프로그램 구성 및 개별 컴파일을 향상시키며, 구현에 대해 정보를 은닉할 수 있는 장점이 있다.

 

 

2. Inheritance

 

Class Y가 Class X를 상속하면

- Y는 X의 모든 method와 Data를 상속받는다.

- Y is a X가 성립된다 (모든 인스턴스 Y는 인스턴스 X가 될 수 있다).

 

 

3. Polymorphism

 

여러 가지 형태를 가질 수 있는 능력을 의미한다.

같은 이름을 갖는 함수가 여러 클래스에서 선언되어 다른 방식으로 수행될 수 있다.

 

1) Runtime polymorphism (Dynamic polymorphism)

    - Method Overriding

 

2) Compile time polymorphism (Static polymorphism)

    - Method Overloading

 

 

4. Abstract & Interface

 

적어도 하나의 abstract method를 갖고있을 때 Abstract Class라고 한다.

Interface 모든 함수가 구현되지 않은 abstract method이며 모든 variable 은 final static변수이다.

 

그렇기 때문에 Abstract Class를 상속할 때 구현된 함수는 하위 클래스에서 사용할 수 있으며 필요한 method를 추가해서 사용하기 때문에 extends 키워드를 사용하여 상속받는다. 반면 Interface는 모든 함수가 구현되지 않았고 이를 상속한다면 모든 Interface의 함수들을 구현하여 사용해야하기 때문에 implements 키워드를 사용하여 상속받는다.

 

 

5. Class Relationships

관계의 종류와 정도에 따라 여러가지 선으로 그 관계를 표현할 수 있다. 첫 설계시 무엇보다 가장 중요하게 구분해야 할것은 Inheritance / Not inheritance 를 구분하는 것이다.

 

 

6. Encapsulation

 

내부의 일부 알고리즘이나 자료구조 디자인을 외부로 부터 숨기는 방법이다.

내부 데이터를 안전하게 유지하는 것을 도와줄 뿐만 아니라 유지보수나 수정으로부터 client가 영향을 덜 받도록 한다.

 

Encapsulation은 Technique이다. Principle이 아니다.

 -> Information hiding : Encapsulation = Principle : Technique

반응형
Comments