Design Architecture/Design Pattern

2강 객체지향 패러다임

lipnus 2021. 8. 28. 18:09
반응형

Abstract Data Type

- 하나의 문법적 요소

- Encapsulation

 

클라스수준을 넘어서서.. 클라이언트의 코드의 재사용성이 진자 중요
하나 추가하면 이런 좆구린 현상..
폴리몰픽하게! 폴리곤이 새로 등장해도 좆스무스함
같은이름! if-else나 쉬위치 없이 구현 가능

Runtime - 오버라이딩

Compiletime - 오버로딩

 

컴파일타임에서, static 폴리몰피즘

 

런타임 폴리몰피즘

 

이거 되니까 헷갈리지 말긔

 

X a = new X();

X b = new Y();

자손의 객체도 가리킬 수 있다.

b.method() 하면 X가 아니라 Y에 있는 매소드가 실행됨.

Y c = new X(); (ㄴㄴ)

 

 

 

하나이상의 abstract 매소드가 있으면 abstract클래스여야만 함

abstarct클래스여도 abstract 매소드가 없어도 됨

 

폴리몰피즘 룰이 동작하므로, 자손의 instance를 가리킬 수 있음.

 

X a = new Y();

a.method(); 

method가 Y에 없으면 X에 있는거 실행

아예 없으면 컴파일에러

 

인터페이스는 모든 매소드가 abstract (abstarct 는 걍 메소드도 가질 수 있음)

instance 가리킬 수 없음

상수는 허용한다

 

 

제약조건이 없으면 인터페이스 써라

abstaracct class에서 구현 쫌 해줘야 할때, 아님 걍 인터페이스 쓰셈

상위 타입일수록 더 범용적

 

타겟이 변하면 소스는 영향을 받음 / 소스가 변해도 타겟은 영향을 받지 않음

 

제일앞에께 변경되었을때 변경이 어디까지 영향을 미치는지 표시

 

반응형

'Design Architecture > Design Pattern' 카테고리의 다른 글

7강 Template Method  (1) 2021.08.29
6강 Observer Pattern  (0) 2021.08.29
5강 Strategy Pattern  (0) 2021.08.29
4강 GRASP Principle  (0) 2021.08.28
3강 SOLID Principle  (0) 2021.08.28