객체지향프로그래밍 OOP ( Object Oriented Programming)
객체지향 프로그래밍은 명령,절차지향프로그래밍과 반대되는 개념이다.
절차지향의 단점?
1. 프로젝트를 수정하기 위해 전체 이해가 필요하다.
2. sideEffect의 위험이 있다.
3. 유지보수가 어렵고, 확장성이 떨어진다.
객체 지향
1. 오브젝트 단위로 만든다.
2. 확장성이 높다.
3. 유지 보수가 쉽다.
오브젝트는 함수,데이터로 구성되어있다.
데이터는 fields, property
함수는 methods로 부른다.
Class는 template 데이터가 없는 틀 이라고 생각하면 쉽다. (no data in)
Object는 instance of a class 틀로 만들어진 오브젝트이다. (data in)
Coffee Class {
name:string;
price:number;
}
에서 만들어진것
{
name: cafeLatte;
price :3000;
}
객체지향의 4가지 원칙
1. Encapsulation 캡슐화
2. Abstraction 추상성
3. Inheritance 상속
4. Polymorphism 다형성
1. Encapsulation캡슐화
- 서로 연관있는 것들을 묶어놓는다.
- 변수, 메소드를 묶어놓는다.
- 데이터를 외부에서 직접 접근하지 않게 하는것.
- 정보은닉과 연관되어있다.
- 상태를 외부에서 변경할 수 없다.
- 함수를 통해서만 내부 상태를 변경할 수 잇다.
- public
- private
- protected(상속받은 자식 클래스에서만 접근가능)
2. Abstraction 추상화
- 공통의 속성이나 기능을 묶어놓는다.
- 클래스간의 공통점을 찾아내 공통의 부모를 설계한다.
- 외부에서만 보이는 함수를 이용해 오브젝트를 사용하게 한다.
3. Inheritance 상속
- 상속을 이용해 필요한 기능만 더해 다른 종류의 오브젝트를 만들 수 있다.
- 클래스의 재사용
- 상속은 IS-A 관계라고도 한다.
- 따라서 한 번에 한 개의 클래스 만을 상속 받을 수 있다.
4. PolyMorphism 다형성
- 상속을 통해 기능을 확장, 변경하는것.
'Frontend > TypeScript' 카테고리의 다른 글
tsconfig 설정 (0) | 2022.06.23 |
---|---|
find, get 등은 undefined가 나올 가능성이 있음 (0) | 2022.04.14 |