Juuunew 살아남기

[Spring] 객체지향 설계원칙 (SOLID) - 개방-폐쇄 원칙 OCP 본문

Framework/Spring

[Spring] 객체지향 설계원칙 (SOLID) - 개방-폐쇄 원칙 OCP

Juuunew 2022. 12. 8. 22:57

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

 

  • 확장에는 열려있고, 변경에는 닫혀있는
  • 기존의 코드를 변경하지 않으면서(Closed), 기능을 확장할 수 있도록(Open) 설계해야한다.
  • 다형성을 활용해 볼 것.

 

단일 책임 원칙에서 예시로 들었던 서비스센터를 이어서 활용해 보겠다.

// ServiceCenter 인터페이스
public interface ServiceCenter {
    public void repair();
}

// LaptopServiceCenter 구현 클래스
public class LaptopPart implements ServiceCenter{
    
    @Override
    public void repair() {
        System.out.println("노트북 수리");
    }
}

// SmartphoneServiceCenter 구현 클래스
public class SmartphonePart implements ServiceCenter{
    
    @Override
    public void repair() {
        System.out.println("스마트폰 수리");
    }
}

ServiceCenter laptop = new LaptopPart();
ServiceCenter smartPhone = new SmartphonePart();

하지만 다형성을 활용해도 OCP원칙을 지킬 수 없는 경우가 있다.

 

이러한 경우에는 객체를 생성하고 연관관계를 맺어주는 별도의 조립, 설정자가 필요한데

 

Spring에서는 Spring Container가 이 역할을 담당하고 있다.

 

💡 공부 중 정리하는 내용이므로 부족한 부분이 있을 수 있습니다.

 

💡 참고자료

 

스프링 핵심 원리 - 기본편 (인프런 김영한)

 

스프링 핵심 원리 - 기본편 - 인프런 | 강의

스프링 입문자가 예제를 만들어가면서 스프링의 핵심 원리를 이해하고, 스프링 기본기를 확실히 다질 수 있습니다., - 강의 소개 | 인프런...

www.inflearn.com

참고 블로그

 

[Spring 핵심 원리 - 기본편] 3) SOLID 원칙

layout: posttitle: "Spring 핵심 원리 - 기본편 3) SOLID 원칙"date: 2020-11-28 23:17image: spring.pngtags: java,Spring,Spring framework,SOLID,좋은객체지향,디자인패턴categor

velog.io