OOP(Object-Oriented Programming)
객체 지향 프로그래밍 방식

OOP 장점 & 단점

장점

  • 코드의 재사용이 높아짐
  • 유지보수가 쉬움
  • 코드가 간결해짐

단점

  • 처리 시간이 비교적 오래 걸림
  • 프로그램을 설계할 때 많은 고민과 시간을 투자해야 함

OOP의 5원칙(SOLID)

S(SRP : Single Responsibility Principle) - 단일 책임 원칙

  • 한 클래스는 하나의 책임만 가져야 함

O(OCP : Open/Closed Principle) - 개방 페쇄 원칙

  • 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 함
  • 확장에는 열려있으나 변경에는 닫혀 있어야 함

L(LSP : Liskov's Substitution Principle) - 리스코프 치환 원칙

  • 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 함

I(ISP : Interface Segregation Principle) - 인터페이스 분리 원칙

  • 인터페이스를 클라이언트에 특화되도록 분리시키라는 설계 원칙

D(DIP : Dependency Inversion Principle) - 의존 역전 원칙

  • 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안됨
  • 의존 관계를 맺을 때 변화하기 쉬운 것 또는 자주 변화하는 것보다는 변화하기 어려운 것, 거의 변화가 없는 것에 의존하라는 것

OOP의 4가지 특징

추상화

  • 목적과 관련이 없는 부분을 제외해서 필요한 부분을 포착하는 기법
  • 객체의 공통된 속성들 중 필요한 부분을 포착해서 클래스로 정의하는 설계 기법

캡슐화

  • 외부에 노출할 필요가 없는 정보들은 은닉 (정보 은닉)

상속

  • 부모 클래스가 자손 클래스에게 속성을 물려주는 것
  • 코드의 재사용

다형성

  • 같은 형태지만 다른 기능을 하는 것 ex) 오버라이딩
  • 오버라이딩(Overriding) : 상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의해서 사용
  • 오버로딩(Overloading) : 이름의 메서드 여러개를 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술

.
.
.
.
.

참고
https://velog.io/@ygh7687/OOP%EC%9D%98-5%EC%9B%90%EC%B9%99%EA%B3%BC-4%EA%B0%80%EC%A7%80-%ED%8A%B9%EC%84%B1
https://theheydaze.tistory.com/603

0개의 댓글

Powered by GraphCDN, the GraphQL CDN