(실습)객체지향 설계 원칙를 지키면서 설계하기
·
Spring Framework
먼저 레거시입니다. 클라이언트 클래스가 MemberRepository라는 인터페이스뿐만 아니라 MemoryMemberRepository라는 구체 클래스에도 의존하고 있다. ​ 그래서 DIP, OCP를 위반하고 있다. ​ 이해를 안갈 수 있으니 예를 들어보자. 만약 구체(구현) 클래스가 JpaRepository로 바뀌었다. 그러면 클라이언트 클래스 (MemberServiceImpl) 에서 new JpaRepository로 변경할 것이다. ​ 의존관계에서 구체 클래스를 의존하고 있어 DIP를 위반하고 있다. 그리고 만약 구체 클래스를 변경하려면 클라이언트 클래스를 직접 수정해야 하므로 OCP를 위반한다. ​ ​ ​ 문제를 해결하는 방법이다. 인터페이스에만 의존하는 방법으로 생성자를 통해 구현 객체를 주입(D..
객체 지향 설계의 5가지 원칙(SOLID)
·
Spring Framework
SOLID 원칙이란? -> 객체 지향 설계에서 지켜야 할 5개의 소프트웨어 개발 원칙이다. ​ SRP(Single Responsibility Principle): 단일 책임 원칙 OCP(Open Closed Priciple): 개방 폐쇄 원칙 LSP(Listov Substitution Priciple): 리스코프 치환 원칙 ISP(Interface Segregation Principle): 인터페이스 분리 원칙 DIP(Dependency Inversion Principle): 의존 역전 원칙 ​ 좋은 소프트웨어란 변화에 대응을 잘 하는것을 말한다. SOLID 객체 지향 원칙을 적용하면 코드를 확장하고 유지, 보수, 관리 하기가 더 쉬워지며, 불필요한 복잡성을 제거해 리팩토링에 소요되는 시간을 줄임으로써 ..