본문 바로가기

토비의 스프링3

예제7. 팩토리 UserDaoTest는 UserDao의 기능이 잘 동작하는지를 테스하려고 만든 것임으로 책임이나 관심사를 분리해버려야 한다.분리될 기능 : UserDao와 Connection 구현 클래스의 오브젝트를 만드는 것그렇게 만들어진 두개의 오브젝트가 연결돼서 사용될 수 있또록 관계를 맺어 주는 것 팩토리 : 객체의 생성 방법을 결정하고 그렇게 만들어진 오브젝트를 돌려줌. 오브젝트를 생성하는 쪽과 생성된 오브젝트를 사용하는 쪽의 역할과 책임을 깔끔하게 분리하려는 목적으료 사용. DaoFactory.java12345678910111213141516171819package springbook.user.dao; public class DaoFactory { //팩토리의 메소드는 UserDao 타입의 오브젝트를 어떻게 .. 2014. 8. 20.
예제3. 상속을 통한 확장 템플릿 메소드 패턴 : 슈퍼클래스에 기본적인 로직의 흐름(커넥션, SQL생성, 실행, 반환) 을 만들고, 그 기능의 일부를 추상 메소드나 오버라이딩이 가능한 protected 메소드 등으로 만든 뒤 서브클래스에서 이런 메소드를 필요에 맞게 구현해서 사용하도록 하는 방법 팩토리 메소드 패턴 : 서브클래서에 구체적인 오브젝트 생성 방법을 결정하게 하는 것 NUserDao, DUserDao 에서는 어떤식으로 Connection 기능을 제공하는지, 어떤 방법으로 Connection 오브젝트를 만들어내는지에 대한 관심을 가지고 있음. 상속을 통한 확장방법이 제공UserDAO.java12345678910111213141516171819202122232425262728293031323334353637383940414.. 2014. 8. 20.
예제1 사용자 정보 저장용 자바빈 12345678910111213141516171819202122232425262728293031323334package springbook.user.domain; public class User { String id; String name; String password; public String getId() { return id; } public void setId(String id){ this.id = id; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public String getPassword(){ return password; } public.. 2014. 8. 18.