SOLID (객체 지향 설계 원칙)

김하밍·2023년 5월 30일
0

Spring

목록 보기
2/13

특성

  1. 높은 응집력
  2. 낮은 결합도

SRP(Single Responsibility Principle, 단일 책임의 원칙)

  • 클래스를 제공하는 기술들은 하나의 책임을 수행하는 데 집중해야 한다.
Ex) AOP는 별도의 부가 기능을 핵심 로직에서 분리했기 때문에
	SRP의 원칙을 지킨 방식이라고 볼 수 있다.

OCP(Open Close Principle, 개방폐쇄의 원칙)

  • 변하는 것과 변하지 않는 것을 잘 구분하면 OCP를 지키기 용이하다.
Ex) 자동차 라는 객체
	(변하지 않는 동작) 움직이는 것
	(변하는 동작) 수동 모드, 오토메이션 모드, 크루즈컨트롤 모드

LSP(The Liskov Substitution Principle, 리스코브 치환의 원칙)

  • subclass의 객체는 superclass의 참조 변수에 대입해서 superclass의 역할을 수행하는데 문제가 없어야 한다는 원칙이다.

ISP(Interface Segregation Principle, 인터페이스 분리의 원칙)

  • 일반적인 하나의 인터페이스를 조금 더 구체적인 인터페이스로 쪼개는 것이 낫다.
Ex) 새의 행동(일반적인 하나의 인터페이스)
	날수 있는 행동(구체적인 인터페이스)
	울수 있는 행동(구체적인 인터페이스)

DIP(Dependency Inversion Principle, 의존성 역전의 원칙)

  • DI(Dependency Injection)는 IoC 개념을 조금 구체화시킨 것
  • 자주 변경되는 구체 클래스에 의존하지 않고, 추상화된 클래스에 의존하는 것
    --> 의존 관계가 역전된 형태
profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글