728x90
반응형
- 알고리즘의 구조를 어떤 과정을 알고리즘이라고 하는 그 구조를 읽고 오고 처리하는 처리하는 것을
- 템플릿으로 제공하고 그중에서 구체적인 방법 제공하는 방법 처리하는 방법 출력하는 방법등을 서브 클래스가 구체적으로 구현할 수 있게 하는 패턴
- 상속을 사용하고 이패턴이 필요해지는 상황을 소스코드로 보자
public clas Client{
public static void main(String[] args){
FileProcessor fileProcessor = new FileProcessor("number.txt");
int result = fileProcessor.process();
System.out.println(result);
}
}
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class FileProcessor{
private String path;
public FileProcessor(String path){
this.path = path;
}
public int process(){
try(BufferedReader reader = new BufferedReader(new FileReader(path))){
int result = 0;
String line = null;
while((line = reader.readLine()) != null){
result += Integer.parseInt(line);
}
return result;
}catch(IOException e){
throw new IllefalArgumentException(path + "에 해당하는 파일이 없습니다.",e);
}
}
}
- 알고리즘 구조를 서브 클래스가 확장할 수 있도록 템플릿으로 제공하는 방법
- 추상 클래스는 템플릿을 제공하고 하위 클래는 구체적인 알고리즘을 제공
728x90
반응형
'CS Study > 디자인패턴' 카테고리의 다른 글
22.03.02_템플릿메소드_장단점 (0) | 2022.03.03 |
---|---|
22.03.02_템플릿메소드_패턴적용하기 (0) | 2022.03.03 |
22.02.20_자바와스프링에서찾아보는패턴 (0) | 2022.02.21 |
22.02.20_전략패턴의장점과단점 (0) | 2022.02.21 |
22.02.20_전략패턴-패턴적용하기 (0) | 2022.02.21 |
댓글