객체지향

    [Spring] 스프링 핵심 원리 이해2 - 객체 지향 원리 적용

    스프링 핵심 원리 기본편 할인 정책을 바꾸려면 OrderServiceImpl 코드를 변경해야 함 역할과 구현을 충실하게 분리O 다형성 활용O, 인터페이스와 구현 객체를 분리함 OCP, DIP 객체 지향설계 원칙을 충실히 준수한 것처럼 보이지만 사실은 아님 DIP: 주문서비스 클라이언트(OrderServiceImpl)은 DiscountPolicy 인터페이스에 의존하면서 DIP를 지킨 것 같은데? 추상인터페이스 뿐만 아니라 구현 클래스에도 의존하고 있음 추상 인터페이스: DiscountPolicy 구현 클래스: FixDiscountPolicy, RateDiscountPolicy OCP: 변경하지 않고 확장? 지금은 기능을 확장해서 변경하면 클라이언트 코드에 영향을 줌 DIP 위반 → 추상(인터페이스)만 의존..

    [스프링/자바] 좋은 객체 지향 설계의 5가지 원칙: SOLID

    인프런 강의 '스프링 핵심 원리 - 기본편' 을 보고 정리한 내용입니다. 단순히 객체 지향 프로그래밍에 대한 개념만 이해하다가 강의를 들으니까 이제서야 객체 지향 설계가 무엇인지에 대한 개념이 생기는 것 같다. 특히 단순히 인터페이스와 클래스를 구현하는 것만으로는 SOLID 원칙을 모두 지킬 수 없다는 점이 크게 와닿았다. 스프링에 대한 필요성을 이해하는 데 좋은 것 같다. 다들 왜 이 강의를 추천하는 지 알 것 같음.. SOLID SRP: 단일 책임 원칙(single responsibility principle) 한 클래스는 하나의 책임만 가져야 한다 하나의 책임은 모호한 개념이다. SRP를 판단할 수 있는 중요한 기준은 변경 - 변경이 있을 때 파급 효과가 적으면 SRP를 잘 따른 것 한 클래스가 여..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]