나는 내가 가지고있는 가장 좋은 방법을 알 필요가 내 API를 변경하는 데 필요한 상황에 달렸다 : 처음에 내 API는 말했다 : 이제API 설계 변경 모범 사례
DFS dfs = new DFS(Graph);
dfs.runDFS(source);
, 나는 또 다른 기능을 추가 내 DFS 코드, 입력 정점에서 소스로 dfs 경로를 반환합니다. 나는 이전 버전과의 호환성을 유지한다면
DFS dfs = new DFS(Graph, source); // BREAKS THE CONTRACT.
dfs.runDFS(); // BREAKS THE CONTRACT.
dfs.getPathFromSource(vertex);
(2 생성자와 2 개 runDFS 기능을 유지) 내 고객은 또 다른 문제로 실행됩니다 : : 이전 버전과 호환 비록
DFS dfs = new DFS(Graph);
dfs.runDFS();
dfs.getPathFromSource(vertex);
처럼 따라서 나의 새로운 깨끗한 API 보인다 버그가 있습니다. coz 소스는 어디에도 언급되어 있지 않습니다 (생성자 나 함수 호출 모두에서 언급되지 않음).
이 시나리오에서 최상의 API 실습을 제안하십시오. 감사합니다