본문 바로가기

java

[JAVA] 람다식 실용예제 - 실행 어라운드 패턴

실행 어라운드 패턴 

 

자원처리에 처리하는 **순환 패턴 Recurrent pattern 은 자원을 열고, 처리한 다음에, 자원을 닫는 순서로 이루어 진다.  설정과 정리 과정은 대부분 비슷하다.

실행 어라운드 패턴은 실제 자원을 처리하는 코드를 설정 정리 두 과정이 둘러싸는 형태를 갖는다. 

 

 

아래의 코드에서 기존의 설정, 정리과정은 재사용하고 processFile 메서드만 다른 동작을 수행하도록 명령 할 수 있다.

 

1단계 :  동작 파라미터화

 

public String processFile() throws IOEception {
	try(BufferedReader br = 
                  new BufferedReader(new FileReader("data.txt"))) {
	   return br.readLine();	
    }
}

 

2단계 :  함수형 인터페이스를 통하여 동작 전달 

 

public interface BufferedReaderProcessor {
	String process(BufferedReader b) throws IOException;
}

 

public String processFile(BufferedReaderProcessor p) throws IOException {
  ... 
}

 

3단계:  동작실행 

 

public String processFile(BufferedReaderProcessor p)
            throws IOException {
	try(BufferedReader br = 
               new BufferedReader(new FileReader("data.txt"))) {
    	return p.process(br)
    }       
}

 

4단계:  람다 전달

 

String oneLine = processFile((BUfferedReader br) -> br.readLine()); 
String twoLine = processFile((BUfferedReader br) -> br.readLine() + String oneLine = processFile((BUfferedReader br) -> br.readLine()); 
);
반응형