목록전체 글 (1730)
오늘도 공부
템플릿/콜백 패턴은 간단한 정의로는 중복되는 코드들을 인터페이스등을 통한 추출로 인하여 코드의 간결함과 효율성을 높이는 데 있다고 한다. 여기 예제에서는 파일입출력시 try/catch/finally등 자원반납에 관해서 모든 메소드가 중복되고 있다. 그래서 그 부분을 빼고자 하는 것이다. 암튼 적용한 다음의 소스는 다음과 같다. (참고 : @Before는 junit실행시 서론, @Test는 본론, @after는 결론) JUnit는 main메소드가 없어도 테스트를 실행함..^^ CalcSumTest.java public class CalcSumTest { Calculator calculator; String filepath; @Before public void setUp(){ calculator = new ..
package springbook.learningtest.template; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Calculator { public Integer calcSum(String filepath) { BufferedReader br = null; int sum = 0; try { br = new BufferedReader(new FileReader(filepath)); String line = null; while( (line=br.readLine())!=null ){ sum += Integer.parseInt(line); } br.close(); } ca..
출처 : 1400페이지짜리 '토비의 스프링' 서적 간단한 파일 입출력 리펙토링 과정을 보여준다. 우선 기본적으로 알아야 하는 건 JUnit 방법이다.. 검색해보면 금방 알수 있으므로 해보삼^^ 실제 계산하는 Calculator.java package springbook.learningtest.template; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; public class Calculator { public Integer calcSum(String filepath) throws IOException{ BufferedReader br = new BufferedReader(new FileReade..
http://www.javajigi.net/pages/viewpage.action?pageId=87130115
출처 : http://blog.naver.com/lriberio?Redirect=Log&logNo=80068562529 Spring Framework 다운로드 (2008년 11월 4일 기준) 1. http://www.springsource.org/download 로 간다. 2. http://www.springsource.com/download?project=Spring%20Framework 로 이동된다. 아래로 조금 스크롤 => Community Download [Download Now] 를 클릭한다. 3. [No thanks, take me to the download] 클릭 4. spring-framework-2.5.6-with-dependencies.zip 클릭 5. 저장 후 압축 해제 아래 경로에..
[Spring] 이클립스에 스프링 개발환경 셋팅 Spring 2010/08/25 11:25 http://skyunoe.blog.me/20112368374 Java JDK 설치 : http://java.sun.com (version 1.6.20) Apache Tomcat 설치 : http://apache.org (version 7) Eclipse IDE 설치 ; http://www.eclipse.org (Eclipse IDE for Java EE Developers 3.6 package) Spring Framework 설치 : http://www.springsource.com/download/community?project=Spring%20Framework (version 3.0.4) 1. Help > I..
전체 소스는 밑에..하지만 책과는 좀 다름..내 나름대로 끝에 마음대로 짠것임..T.T 위 기능을 분리해서 담당할 클래스를 만들어보자. 우선 UserDaoTest 클래스다 public class UserDaoTest { public static void main(String[] args) { UserDao user = new DaoFactory().userDao(); } } Factory에서 연결될 오브젝트를 정의를 한다. public class DaoFactory { public UserDao userDao(){ ConnectionMaker connectionMaker = new DConnectionMaker(); UserDao dao = new UserDao(connectionMaker); retur..
그럼 아예 이런식으로 독립시켜버리자. UserDaoTest라는 클래스를 만들어서 여기안에서 실행및 테스트를 할수 있다. UserDao의 생성자 public UserDao(ConnectionMaker connectionMaker){ //초기화 ID 및 PASSWORD this.connectionMaker = connectionMaker; } public class UserDaoTest { public static void main(String[] args) { ConnectionMaker connectionMaker = new DConnectionMaker(); UserDao dao = new UserDao(connectionMaker); } 이렇게 나누어 지면 거의 끝이다. 하지만 위의 코드에서 문제점은..
-토니의 스프링 책참고 위 경우의 해결책은 두개의 클래스가 서로 긴밀하게 연결되어 있지 않도록 중간에 추상적인 느슨한 연결고리를 만들어주는 것이다.추상화란 어떤 것들의 공통적인 성격을 뽑아내어 이를 따로 분리해내는 작업이다.자바가 추상화를 위해 제공하는 가장 유용한 도구는 바로 인터페이스이다. 인터페이스의 최대장점은 추상화가 되는 동시에 실제 이걸이용해서 구현하는 클래스는 밑 바탕 클래스를 몰라도 된다.. 이 바탕 클래스가 별 스트립쇼를 부리든 난동을 부리든.. 인터페이스만 신경쓰면 된다. 아래는 인터페이스 설정이다. public interface ConnectionMaker { public Connection makeNewConnection() throws ClassNotFoundException,SQ..
앞에서 잠시 언급했듯이 다중상속이 허용되지 않는 자바에선 위와 같은 방법은 별로 좋지 못하다. 그래서 우선 Connection 를 주는 클래스를 아예 따로 떼어버리자. 그럼 상속받을 필요도 없고 그냥 생성해서 쓰면 그만이다. abstact일 필요도 없어진다. 자세한 코드는 다음과 같다. Connection만 관리하는 클래스 추출 public class SimpleConnectionMaker { public Connection makeNewConnection() throws ClassNotFoundException,SQLException{ return 만들어질 커넥션; } } 그럼 add와 get 메소드 안에서는 Connection c = simpleConnectionMaker.makeNewConnecti..