본문 바로가기

ocp

(2)
[Java/OOP] SOLID 원칙 1. SRP 단일 책임의 원칙 - Single responsibility principle 한 클래스는 하나의 책임만 가져야 한다. 변경을 기준으로 한다. 변경이 있을 때 파급 효과가 적으면 단일 책임 원칙을 잘 따른 것이다. 2. OCP 개방-폐쇄 원칙 - Open/closed principle 소프트웨어 요소는 확장에는 열려 있으나, 수정에는 닫혀있다. 다형성을 활용해보자 인터페이스를 구현한 새로운 클래스를 하나 만들어서 새로운 기능을 구현한다. 문제점 구현 객체를 변경하려면 클라이언트 코드를 변경해야한다. 분명 다형성을 사용했지만 OCP원칙을 지킬 수 없다. 객체를 생성하고, 연관관계를 맺어주는 별도의 조립, 설정자가 필요하다. 3. LSP 리스코프 치환 원칙 - Liskov substitution..
[WEB기초] Spring 생성자 주입을 써야하는 이유 생성자 주입을 사용해야하는 이유 객체의 불변성 확보 수정자 주입이나 일반 메소드 주입을 사용하면, 불필요하게 수정의 가능성을 열어두게 된다. SOLID 5원칙 중 OCP 원칙을 지키며 객체의 불변성을 확보할 수 있다. 테스트 코드의 작성 테스트 코드를 순수 자바코드로 작성할 수 있다. 컴파일 시점에 객체를 주입받아 테스트 코드를 작성할수 있으며, 주입하는 객체가 누락된 경우 컴파일 시점에 오류를 발경할 수 있다. 필드 주입의 경우 순수 자바코드로 단위테스트를 작성하는 것이 불가능하다 final 키워드 작성 및 Lombok과의 결합 final 키워드를 사용할 수 있고, Lombok과의 결합을 통해 코드를 간결하게 작성할 수 있다. 순환 참조 에러 방지 순환 참조 문제를 애플리케이션 구동( 객체의 생성 ) ..