데이터베이스에서 데이터를 수집 할 여러 스레드를 생성 중입니다.다형성 및 지역 변수
public interface Command {
void execute();
void collectData();
void processData();
void setData(ArrayList<Objects> data);
}
: 내가이 일을 두 가지 방법이 있습니다 알고
그러나 이러한 모든 스레드에 나도 내가 인터페이스를 사용까지 내 Database
객체의 로컬 참조가 필요합니다 그리고 나서 각 thead 클래스 (명령 인터페이스를 확장하는)에서 수동으로 변수를 설정하십시오.
그러나 테스트와 검색을 통해 다음을 수행 할 수 있음을 발견했습니다.
public abstract class commandtest implements Runnable{
Database db;
abstract void execute();
abstract void collectData();
abstract void processData();
abstract void setData(ArrayList<Objects> data);
}
여기에는 각각의 스레드 객체가 확장 할 수 있고 필요한 변수를 설정하는 생성자를 만들 수있는 추상 클래스가 있습니다.
제 질문은이 두 가지 방법 중 어느 것이 가장 좋은 방법인가요?
"최상의"것은 없으며 "상황에 가장 적합한"것이 있습니다. –
@DaveNewton 어떻게 결정합니까? 어떤 요소를 고려해야합니까? –
나는 인터페이스를 선언하고'protected Database db' 속성을 가진 인터페이스를 구현하는 추상 클래스를 가질 것입니다. –