서비스 추상화 그리고 DI (Dependency Injection) DI를 적용하게 되면 수직적인 계층구조를 갖게 된다.1. 애플리케이션 계층2. 추상화 계층3. 기술 서비스 계층 이 계층에 자바파일을 대응 시켜보면 다음과 같다.1. 서비스 로직을 구현한 클래스2. 인터페이스 (기술들의 공통 기능을 추상화하여 메소드로 선언)3. 인터페이스를 구현한 클래스들 눈치 챘을까? 완전히 전략 패턴이다. 이 계층 구조을 통해 DI를 설명해보자. 1. 서비스 로직을 구현한 클래스는 추상화된 2. 인터페이스를 사용함으로써 변경에는 닫혀있고 확장에는 열려있는 OCP 원칙을 따른다. 그리고 스프링 프레임워크가 DI를 통해 3. 인터페이스를 구현한 클래스들 중 전략에 맞는 클래스를 선정하여 singletone instance을 생성하여 2. 인터페이스에 대입해준다. 수직 계층구조의 예이다... 더보기 JdbcTemplate (쓰기 편한 database 접속 api) 스프링이 제공해주는 템플릿/콜백 패턴의 라이브러리(?)이다.즉, 변하지 않는 부분을 템플릿으로 미리 만들어주었다.우리가 사용할 때는 변하는 부분(콜백)만 템플릿 메소드에게 파라미터로 전달해주면 끝이다. 사용예)...JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);jdbcTemplate.update("delete from users");jdbcTemplate.update("insert into users(id, name, password) values(?,?,?)", user.getId(), user.getName(), user.getPassword());int count = jdbcTemplate.queryForInt("select count(*) f.. 더보기 템플릿/콜백 패턴 (익명 내부 클래스를 주입하는 전략패턴) 템플릿/콜백 패턴은 전략패턴이다. client가 특정 인터페이스를 구현한 클래스를 생성하여 변하지 않는 클래스에 주입시에.. 익명 내부 클래스를 생성/주입하는 조금 특별한 경우라면.. (스프링에서) 이를 그냥 전략패턴이라고 부르기 보다는 조금 구분짓기 위해 템플릿/콜백 패턴이라 부른다. 템플릿/콜백 패턴에는 몇 가지 특징이 있다. 1. 인터페이스는 단 하나의 메소드를 선언하고 있다. (익명클래스 생성시에 override해서 구현할 메소드는 단 하나다) 2. 익명클래스내의 구현메소드가 client(외부 클래스)의 final 변수를 참조할 수 있다. 사용예) public class TestClient { .... @Test public void testSum() { int sum = calculator.su.. 더보기 이전 1 ··· 8 9 10 11 12 13 다음 목록 더보기