개방-폐쇄 원칙

onebbu·2023년 2월 15일
0
  • 파일 경로 : service/SpringConfig
public class SpringConfig {
 private final DataSource dataSource;
 public SpringConfig(DataSource dataSource) {
 this.dataSource = dataSource;
 }
 @Bean
 public MemberService memberService() {
 return new MemberService(memberRepository());
 }
 @Bean
 public MemberRepository memberRepository() {
// return new MemoryMemberRepository();
return new JdbcMemberRepository(dataSource);
 }
}

-> 기존의 코드 수정 없이 애플리케이션 설정(어셈블리)
DataSource는 데이터베이스 커넥션을 획득할 때 사용하는 객체다. 스프링 부트는 데이터베이스 커넥션 정보를 바탕으로 DataSource를 생성하고 스프링 빈으로 만들어둔다. 그래서 DI를 받을 수 있다.

스프링 설정 이미지

이전에는 memoryMemberRepository를 의존하고 있었으나 연결을 끊고 jdbcMemberRepository를 의존
-> 개방-폐쇄 원칙

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

  • 확장에는 열려있고, 수정, 변경에는 닫혀있다.
  • 스프링의 DI (Dependencies Injection)을 사용하면 기존 코드를 전혀 손대지 않고, 설정만으로 구현 클래스를 변경할 수 있다.

0개의 댓글