Strategy 모드 사용 배우 기
다음은 전략 모드 를 어떻게 사용 하 는 지 설명 한다.
부류
표를 불 러 오 는 부모 클래스 를 작성 하여 공용 변수 와 방법 을 정의 합 니 다.
public abstract class LoadDataStrategy {
public LoadDataStrategy() {
super();
}
//
public TJFinanceData loadData(String filePath) {
TJFinanceData tjfd = new TJFinanceData();
try {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(filePath));
HSSFWorkbook wb = new HSSFWorkbook(fs);
// .
}
}
} catch (Exception e) {
e.printStackTrace();
}
return tjfd;
}
//
public abstract List loadProjectData(HSSFSheet sheet);
}
하위 클래스
이때 의 하위 클래스 는 서로 다른 재무 표를 대상 으로 하 는 서로 다른 알고리즘 이다. 다음은 그 중의 하나 로 서로 다른 표 에 따라 서로 다른 하위 클래스 를 쓸 수 있다.
public class FPTSBLoadData extends LoadDataStrategy {
public FPTSBLoadData() {
super();
// TODO Auto-generated constructor stub
}
//
public TJFinanceData loadData(String filePath) {
…..
}
//
public List loadProjectData(HSSFSheet sheet) {
….
}
}
3. 알고리즘 선택 클래스
클 라 이언 트 가 자 유 롭 게 알고리즘 을 선택 할 수 있 도록 제공 합 니 다.
public class LoadDataSolve {
//
private LoadDataStrategy strategy;
//
public LoadDataSolve(String className) {
try {
Class LoadData = Class.forName(className);
this.strategy = (LoadDataStrategy) LoadData.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
}
//
public LoadDataSolve(LoadDataStrategy strategy) {
this.strategy = strategy;
}
//
public TJFinanceData loadData(String filePath) {
return strategy.loadData(filePath);
}
//
public void changeAlgorithm(LoadDataStrategy newAlgorithm) {
this.strategy = newAlgorithm;
}
}
호출
public class TestLoad{
…………………
public TJFinanceData testLoadData(String filePath){
// FPTSBLoadData
TJFinanceData solver= new LoadDataSolve( “com.company.financel.dataload.FPTSBLoadData”);
TJFinanceData fd = solver.loadData(filePath);
Return fd;
}
………
}
인터넷 발췌 문:
정책 모드 는 실행 기간 에 알고리즘 을 자 유 롭 게 전환 할 수 있 는 목적 을 달성 했다.
실제 전체 Strategy 의 핵심 부분 은 추상 적 인 사용 이다. Strategy 모델 을 사용 하면 사용자 가 변화 가 필요 할 때 수 정 량 이 적 고 빠 른 속도 이다. Strategy 와 Factory 는 어느 정도 유사 하 다. Strategy 는 상대 적 으로 간단 하고 이해 하기 쉬 우 며 운영 시간 에 자 유 롭 게 전환 할 수 있다.Factory 는 대상 을 만 드 는 데 중점 을 두 고 있 습 니 다.
Strategy 는 다음 장소 에 적합 합 니 다.
1. 다른 형식 으로 파일 저장 하기;
2. 서로 다른 알고리즘 으로 파일 압축 하기;
3. 서로 다른 알고리즘 으로 이미지 캡 처 하기;
4. 같은 데 이 터 를 다른 형식 으로 출력 하 는 도형, 예 를 들 어 곡선 이나 구조 bar 등
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Codility Lesson3】FrogJmpA small frog wants to get to the other side of the road. The frog is currently located at position X and wants to get to...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.