SOLID 객체지향 원리

Jeong seulho·2023년 5월 1일
0

소프트웨어 공학

목록 보기
20/25

📌single Responsibility principle(SRP)

  • 단일 책임 원리
  • 각 모든 모듈 or 클래스들은 하나의 기능 or 역할을 가져야 한다

🙅bad case1

  • 하나의 모듈에 여러 기능이 있는 경우

🙅bad case2

  • 하나의 기능이 여러 모듈에 걸쳐 있는 경우
  • 참고) transaction : DB에서 자주사용하는 용어로 어떤 로직이 수행되다가 제대로 마치지 못하였으면 처음 아무 로직도 수행되지 않은 상태로 되돌아가는 것(애매하게 중간상태를 방지)

📌open closed princple(OCP)

  • 개방 폐쇄 원리
  • 원래의 코드는 그대로 유지한채 확장가능 해야한다

👍good case

  • 해당 구조에 있는 코드들을 그대로 유지한채 A3를 추가(확장)가능해야 한다

📌liskov subtitution principle(LSP)

  • 리스코프 치환 원리
  • 기존의 부모클래스의 명세(기능, 변수)를 유지하면서 부모 객체는 해당 자식 객체로 대체가 가능해야 한다
  • 부모클래스의 기능들이 자식클래스에서 그대로 동작해야한다(확장은 가능 하지만 수정은 안됨)

📌inteface segregation principle(ISP)

  • 인터페이스 분리 원리
  • 다양한 고객에게 제공되는 인터페이스는 범용적인 인터페이스를 두기보다 분리하라

📖example

  • 복합기에 복사, 팩스, 프린터등 범용 인터페이스 존재
  • 각각의 기능을 담당하는 인터페이스를 만들어 분리

📌dependency inversion principle(DIP)

  • 의존 역전 원리
  • 구체적인것에 의존하지 말고 추상적인 것에 의존하라
  • 구체적인 것은 자주 변경 되고 추상적인 것은 잘 변경 되지 않기 때문에

👍good case

  • 아이가 직접 장난감 종류에 접근하는 것이 아닌 장난감이라는 추상적이고 애매한 것에 의존하도록

0개의 댓글