정보관리기술사/소프트웨어공학

객체지향 설계의 원리

기술기술 2023. 12. 12. 14:44

1. 정의

  • 객체 지향 관점에서 자신의 Class안에 응집도를 높이고, 결합도를 낮추는 원칙

 

2. 설계원리

가.  SRP - 단일 책임 원칙

  • 시스템의 모든 객체는 하나의 책임만을 가지며, 객체가 제공하는 모든 서비스는 그 하나만의 책임만을 수행해야 한다는 설계 원칙 악취 (SRC 설계가 잘못된 규칙들) 원인
  • 산탄총 수술, AOP

나. OCP - 개방 폐쇄 원칙

  • 소프트웨어 Entity(classes, Modules, Function)는 확장에는 열려있고 수정에는 닫혀있어야 한다는 설계 원칙

다. LSP - 리스코프 치환 원칙

  • 부모 클래스의 객체(타입과 매소드의 집합)들이 자식 클래스 사용되는 곳에 대체될 수 있어야 한다는 설계 원칙
  • 기능의 명세(계약, 규약)에 대한 내용

라. ISP - 인터페이스 분리의 원칙

  • 어떤 클래스가 다른 클래스에 종속될 때는 최소한의 인터페이스만을 사용해야 한다는 설계 원칙
  • 클라이언트 자신이 이용하지 않는 기능에 영향을 받지 않아야 한다는 원칙

마. DIP - 의존 관계 역전의 원칙

  • 하위 레벨 모듈 변경이 상위 레벨 모듈 변경과 무관하게 설계되어야 한다는 원칙
  • 높은 레벨 모듈낮은 레벨 모듈을 의존하면 안되며 서로 추상에 의존해야 한다는 설계 원칙
  • 추상을 매개로 메시지 주고받음, IOC, 훅 메소드, 확장성