2012-08-23 2 views
5

이제 평균 클래스에는 약 500 행의 코드와 약 50 개의 메소드가 포함됩니다. IDE는 이클립스입니다. "Save Actions"를 사용하여 메서드를 사전 순, 첫 번째 공용 메서드 및 개인 메서드 순으로 정렬합니다. 코드에서 특정 방법을 찾으려면 "빠른 개요"를 사용하십시오. 필요하다면, "Open Call Hierarchy"는 하나씩 호출 할 때 일련의 메소드를 보여줍니다. 후가 자동으로 위치를 적절한 이클립스에 의해 배치됩니다 저장하기 때문에,Java에서 클래스 소스 코드를 어떻게 구성합니까?

    내가 어디 코드에 배치하는 생각하지 않고 새로운 방법을 입력 시작할 수 있습니다
  • :

    이 방법은 다음과 같은 장점을 제공합니다.

  • 난 항상 코드의 상부에 공개 방법을 찾을 수

그러나 몇 가지 단점이 있습니다 (그들을 위해 학급 전체를 검색하지 않아도) :

작은에 큰 방법을 리팩토링 새로운 개인 메서드가 코드의 다른 부분에 배치되어 코드 개념을 따르기가 조금 어렵다는 사실에별로 만족하지 않습니다. 이를 방지하기 위해 showPirstPage(), showSecondPage() 대신 showPageFirst(), showPageSecond()와 같이 각각을 가까이에 두는 이상한 방법으로 이름을 지정합니다.

몇 가지 더 좋은 방법이있을 수 있습니까?

+0

체크 아웃을 해싱

  • 평등, 비교, http://www.amazon.com/Design-Patterns-Java - Software-Series/dp/0321333020 다른 사람들과 유지하고 공유하기가 더 쉬운 소프트웨어를 작성하는 데 도움이됩니다 –

  • 답변

    3

    글쎄, 그들은 당신의 IDE에 발견하기 쉬울 것이다 있도록 방법을 명명하는 것은 정말 좋지 않아보다. 그들의 이름은 그들이하는 일을 반영해야합니다.

    질문에 대한 답으로, 아마도 가장 좋은 방법은 클래스를 여러 클래스로 분할하고 각 클래스에서 공통적으로 사용되는 메소드 그룹을 분리하는 것입니다. 예를 들어, 다음 리팩토링 한

    public void largeMethodThatDoesSomething() { 
    //do A 
    //do B 
    //do C 
    } 
    

    이있는 경우 등 그 :

    public void largeMethodThatDoesSomething() { 
    doA(); 
    doB(); 
    doC(); 
    } 
    
    private void doA() {}; 
    private void doB() {}; 
    private void doC() {}; 
    
    당신이 모든 4 metods를 배치하고 그 인스턴스를 사용 SomethingDoer라는 클래스를 만들 수 있습니다

    원래 클래스의 클래스입니다.

    +0

    프로의 수업 수를 늘리는 것이 좋지 않습니까? ject? 자바 튜토리얼에서 시작 시간이 늘어날 수 있기 때문에 클래스의 수를 늘리지 말라고 경고했다는 것을 기억하고 있습니까? http://docs.oracle.com/javase/tutorial/uiswing/events/generalrules.html#innerClasses – Aleksey

    +0

    예. 당신이 무슨 뜻인지 알고 있습니다. 나는 thar 길에서도 잘 지내 왔습니다. 안드로이드 개발 (Java 사용)을위한 성능 팁 페이지도 있습니다. 일반 텍스트는 몇 가지 클래스를 만들지 만 공용 필드를 사용하지 않고 메서드를 피하고 상속 및 다형성 호출을 방지합니다. 게임 루프가 중요합니다. 그러나 극단으로가는 것은 다루기 어렵고 코드를 유지하기 어렵게 만듭니다. 코드를 올바르게 작성하고 프로그램 별 비즈니스 요구 사항에 따라 별도의 클래스로 메소드를 작성하십시오. –

    +0

    ... 필요한 경우 애플리케이션을 프로파일 링하고 성능 병목을 생성하는 코드가 있는지 확인한 다음 해당 부분 만 최적화하여 최적화하십시오 심미적이지는 않지만 성능이 더 좋아집니다. 날 믿어, 오직 마음에 유일한 성능으로 바닥에서 코딩하고 다른 건 곤경에 당신을 얻을 것이다. –

    1

    당신이 묘사 한 방식을 체계화하는 것은 내가 지금까지 보아온 Java 코드의 99 % 이상을 소리 나는 것입니다. 그러나, 다른 측면에서, 당신의 수업이 너무 많이 성장하지 않도록하고 방법은 거대하지 않도록하십시오.

    클래스는 일반적으로 1000 개 미만의 라인과 방법을해야 덜 (150)가

    3

    클래스 내부에서 메서드를 실제로 정렬하는 것에 대해 걱정할 필요가 없습니다. Ctrl-O 만 사용하면 메서드 이름을 입력하기 만하면 바로 이동할 수 있습니다.

    자체 설명 메서드 이름을 사용하면 인위적으로 알파벳 순서로 유지하는 것보다 유지 관리가 쉬운 코드가됩니다.

    힌트 : 바로 가기 키를 배우고 당신이 당신의 생산성

    4

    는 관객에 대한 코드를 정리 향상됩니다.예를 들어 라이브러리의 클래스는 다음과 같은 잠재 고객을 가질 수 있습니다.

    1. 공개 메소드의 작동 방식에 대한 자세한 정보를 원하는 API 클라이언트.
    2. 작은 변화를 만들기 위해 관련 방법을 찾고 싶어하는 관리자.
    3. 중요한 리팩토링이나 기능 추가를 원하는 더 심각한 관리자입니다.

    소스 코드를 이해하는 고객에게 핵심 개념을 소개하고자합니다. 먼저 중요한 용어 및 사용 예에 ​​대한 용어집이 포함 된 클래스 문서 주석이 있습니다. 그런 다음 한 용어와 관련된 코드를 작성한 다음 다른 코드와 관련된 코드를 작성한 다음 세 번째 코드와 관련된 코드를 작성합니다.

    관리자에게있어 함께 변경해야 할 가능성이있는 메소드 쌍은 서로 가까이 있어야합니다. 공용 메서드와 해당 개인 도우미 및 이와 관련된 상수 만 함께 표시되어야합니다.

    두 사용자 그룹 모두 클래스 멤버를 별도로 문서화 된 논리적 섹션으로 그룹화하여 도움을받습니다.

    예를 들어, 컬렉션 클래스에는 분리 된 클래스로 쉽게 나눌 수 없지만 분리 된 섹션으로 분리 될 수있는 대부분 직교 관심사가있을 수 있습니다.

    1. 뮤 테이터
    2. 접근 자
    3. 반복
    4. 직렬화 및 toString
    관련 문제