내 일반적인 질문은 생성자에 대한 인수를 전달할 때와 클래스의 메소드에 전달할 때입니다. 일반적으로 객체는 "데이터"+ "데이터에서 작동하는 메소드"입니다.생성자를 사용할 때와 인수를 전달할 때
DFS라는 클래스를 디자인하기위한 몇 가지 옵션이 있습니다. 다음 중 스위트 디플로 이닝이 가장 좋은 예는?
옵션 1 : 그래프가 생성자에서 전달되었으며 함수의 소스. Adv : 동일한 DFS 개체가 다른 원본과 함께 다시 사용됩니다.
public class DFS {
Graph g;
public DFS(Graph g) {
this.g = g;
}
public void doDfs(int source) {
// dfs computation
}
}
옵션 2 : 새로운 객체가 구축 될 필요가 각각의 새로운 소스 : 2 PARAMS없이 다형성 Disadv와 생성자입니다.
public class DFS {
Graph g;
int source;
public DFS(Graph g, int source) {
this.g = g;
this.source = source;
}
public void doDfs() {
// dfs computation
}
}
옵션 3 : 과부하 생성자 교수실 : 모든 유스 케이스를 해결한다. Dis : 다형성에 많은 비용이 듭니다.
public class DFS {
Graph g;
int source;
public DFS(Graph g) {
this.g = g;
}
public DFS(Graph g, int source) {
this.g = g;
this.source = source;
}
public void doDfs() {
doDfs(source);
}
public void doDfs(int source) {
// dfs computation
}
}
옵션 4 : 당신이 클래스의 작업/정의와 관련된 뭔가를 할 때 생성자
public class DFS {
DFS() { }
public void doDFS(Graph g, int source) {
this.g = g;
this.source = source;
// dfs computation
}
}
http://stackoverflow.com/questions/18027135 –
"다형성"이란 무엇을 의미합니까? 나는 다형성을 보지 못했고 그것이 어떻게 관련성이 있는지를 보지 못했다. –