[JAVA] 객체지향

JihoLee·2022년 7월 11일
0

🎮객체지향의 4대 특성

1. 캡슐화(Encapsulation)

특정 객체가 독립적으로 역할을 제대로 수행하기 위해 필요한 데이터와 기능을 하나로 묶은 것

2. 추상화(Abstrction)

객체들의 공통적인 특징(속성, 기능)을 뽑아 이름을 붙이는 것

3. 상속(Inheritance)

상위 개념의 특징을 하위 개념이 물려 받는 것

4. 다형성(Polymorphism)

하나의 개체가 여러 개의 형태로 변화 하는 것

🎮객체지향 설계 5원칙 SOLID

응집도와 결합도

좋은 소프트웨어 설계를 위해서는 결합도(coupling)는 낮추고 응집도(cohesion)는 높여야한다.

  • 결합도 : 모듈(클래스)간의 상호 의존 정도를 나타내는 지표로써 결합도가 낮으면 모듈간의 상호 의존성이 줄어들어서 객체의 재사용 및 유지보수가 유리

  • 응집도 : 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로 응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져, 재사용 및 유지보수가 유리

1. SRP(Single Responsibility Principle) 단일 책임 원칙

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

2. OCP(Open Closed Principle) 개방 폐쇄 원칙

  • 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
  • 인터페이스를 이용하면 구현체를 변경해도 코드에 변경이 없다.

3. LSP(Liskov Substitution Principle) 리스코프 치환 원칙

  • 서브 타입은 언제나 자신의 기반(상위) 타입으로 교체 할 수 있어야 한다.

4. ISP(Interface Segregation Principle) 인터페이스 분리 원칙

  • 클라이언트는 자신이 사용하지 않는 메서드에 의존 관계를 맺으면 안된다.

5. DIP(Depencency Inversion Principle) 의존 역전 원칙

  • 자신보다 변하기 쉬운 것에 의존하지 말아야 한다.
profile
안녕하세요

0개의 댓글