2012-06-05 2 views
2

내 사용자 인터페이스는 어디에서 간단한 CRUD 응용 프로그램 (Java 사용)에 있어야합니까?
내 응용 프로그램에는 데이터베이스와 관련이있는 모든 것을 처리하는 또 다른 클래스뿐만 아니라 메인 클래스가 있습니다. 그것으로부터 정보를 얻거나 거기에 새로운 정보를 추가하는 것.내 사용자 인터페이스 코드는 어디에 있어야합니까?

메인 클래스에 UI 요소를 유지하고 데이터베이스 클래스를 사용자 입력과 같이 앞으로 옮기는 것이 좋습니다.

public static void main(String[] args) { 
    Scanner scan = new Scanner(system.in); 

    System.out.println("Give me your name:"); 
    String name = scan.nextLine(); 

    DatabaseHandler db = new DatabaseHandler(); 
    db.addNameToDatabase(name); 
} 

또는 전용 메서드 호출이 표시되는 메인 클래스 있도록 입력 프롬프트는 다음과 같이,의 DatabaseHandler 내부에 존재한다 : 다음과 같이 데이터베이스 클래스에 새 요소를 추가

public static void main(String[] args) { 
    DatabaseHandler db = new DatabaseHandler(); 
    db.addNameToDatabase(); //user interface now inside addNameToDatabase method 
} 
+2

[질문 제목에 '질문'이라는 단어를 사용하지 마십시오.] (http://meta.stackexchange.com/questions/114221/why-isnt-the-word-question-allowed-in-question-titles) (철자가 틀린 경우에도). 우리는 이것이 이것이 하나의 질문이라는 것을 이미 알고 있습니다. 질문이 무엇인지 보여주는 좋은 제목을 찾으십시오. – brimborium

답변

0

정말 프로그램의 크기에 달려 있습니다. 프로그램이 작고 하나의 파일에서 읽기 쉽도록한다면 그렇게하십시오. 프로그램이 커질수록 명료성을 깨뜨리는 것이 필요하게됩니다. (코딩이 매우 간단한 경우 코딩 방법이 하나의 클래스에서 가장 좋을 수 있습니다.
기본 클래스는 UI와 데이터 부분 모두에 대한 드라이버 여야합니다. 다른 모듈에서. MVC 나 MVP 같은 다른 패턴을 분할하는 방법에 대해 살펴볼 수도 있습니다.
당신이 볼 수 있듯이, 모두 맞는 방법이 없습니다. 구성 요소/모듈/패키지로 나누어 진 대형 프로그램은 배선 때문에 팔을 감싸기가 어렵지만 팀이 작업하기가 더 쉽습니다.

0

항상 개발 중에는 - high cohesionlow coupling을 기억하십시오. 귀하의 특정 질문에 대해이 방법을 생각하십시오. 어느 방법을 사용 하든지 high cohesion이 있습니까? 아니요. database 클래스가 사용자 입력을 처리해야하는 이유는 무엇입니까? 그리고 왜 main 메서드는 사용자 입력을 처리해야합니까? 아닙니다, 두 가지 방법 모두 이상적으로 잘못되었습니다.

그러나 우리는 이상적인 상황을 거의 접하지 못합니다. IO는 다른 클래스에서 처리해야하며 데이터베이스는 다른 클래스에서 처리해야하므로 UI도 처리해야합니다. 그리고이 클래스 안에서도 각 메소드에는 특정 태스크가 있어야합니다. 변수를 가져오고 설정하려면 getter 및 setters를 IO 클래스에서 사용하십시오. 그것이해야하는 일을하는 각 방법은 높은 결속을 보장합니다. 모듈이 상호 의존적이지 않기 때문에 이러한 방식으로 낮은 커플 링을 보장하게됩니다. 당신은 생각할지도 모릅니다. - 아 글쎄,이 모든 것을 하나의 수업으로 작성하고 끝내야 겠지만,이 접근 방식은 많은 이점을 가지고 있음을 기억하십시오. 코드 유지 관리가 다른 사람에 의해 수행되어야하는 상황에서는 클래스 및 메서드 이름으로 문제를 찾을 위치를 알 수 있습니다. 연령대에 따른 코드를보아야하는 상황에서 이러한 방식으로 구성되지 않으면 한 단어를 인식하지 못합니다.

기억하십시오 - 높은 응집력과 낮은 커플 링 FTW!

이상적으로 - 귀하의 메인은 귀하의 프로그램을 시작하는 지점 일뿐입니다.

관련 문제