실행 어라운드 패턴
자원처리에 처리하는 **순환 패턴 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());
);
반응형
'java' 카테고리의 다른 글
코어의 수 확인하기(Get OS-level system information) (0) | 2022.03.29 |
---|---|
[JAVA]옵저버 패턴 예제 (0) | 2022.01.27 |
디자인 패턴(Design Pattern) - 목적에 따른 분류 (0) | 2021.11.26 |
[JAVA]java Serializable (0) | 2021.11.04 |
[JAVA] 자바의 정석 - Stream (0) | 2021.10.31 |