코스 과정으로 제출할 패키지의 일부인 큰 클래스 (40 정도의 메소드)가 있습니다. 현재 유틸리티 공공 / 개인 등의 측면 에서이 방법이 상당히 혼란스럽고 합리적인 방법으로 주문하고 싶습니다. 이 작업을 수행하는 표준 방법이 있습니까? 예를 들어 일반적으로 필드는 메소드 앞에 나열되고 생성자는 다른 메소드 앞에 나열되며 getter / setter는 마지막입니다. 나머지 방법은 어떻습니까?
코스 과정으로 제출할 패키지의 일부인 큰 클래스 (40 정도의 메소드)가 있습니다. 현재 유틸리티 공공 / 개인 등의 측면 에서이 방법이 상당히 혼란스럽고 합리적인 방법으로 주문하고 싶습니다. 이 작업을 수행하는 표준 방법이 있습니까? 예를 들어 일반적으로 필드는 메소드 앞에 나열되고 생성자는 다른 메소드 앞에 나열되며 getter / setter는 마지막입니다. 나머지 방법은 어떻습니까?
답변:
일부 규칙은 모든 공용 메소드를 먼저 나열한 다음 모든 개인 메소드를 나열합니다. 즉, 인터페이스가없는 경우에도 의미가 무엇인지 알더라도 API를 구현에서 쉽게 분리 할 수 있습니다.
또 다른 아이디어는 관련 방법을 함께 그룹화하는 것입니다. 이렇게하면 기존 대형 클래스를 여러 개의 더 작고 대상이 지정된 여러 클래스로 분할 할 수있는 이음새를 쉽게 찾을 수 있습니다.
클래스 (정적) 변수 : 먼저 공개 클래스 변수, 보호 된 변수 및 개인 변수.
인스턴스 변수 : 먼저 공개, 보호 및 비공개
생성자
방법 : 이러한 방법은 범위 나 접근성보다는 기능별로 그룹화해야합니다. 예를 들어 프라이빗 클래스 메서드는 두 퍼블릭 인스턴스 메서드 사이에있을 수 있습니다. 목표는 코드를 쉽게 읽고 이해하는 것입니다.
출처 : http://www.oracle.com/technetwork/java/codeconventions-141855.html
«코드 규칙»에 대한보다 정확한 링크 : «클래스 및 인터페이스 선언»
보편적으로 인정되는 표준이 있는지는 확실하지 않지만 제 자신의 선호는 다음과 같습니다.
toString
, equals
하고 hashcode
다음new Thing()
하면 새로운 Thing이 인스턴스화됩니다. 데이터베이스 연결이 열리거나 파일이 작성되는 등의 결과를 초래해서는 안됩니다.
하나의 클래스에서 40 개의 메소드는 약간 많다.
기능 중 일부를 다른 적절한 클래스로 옮기는 것이 합리적입니까? 그렇다면 이해하기가 훨씬 쉽습니다.
수가 적을수록 자연스럽게 읽는 순서대로 나열하는 것이 훨씬 쉽습니다. 빈번한 패러다임 중 하나를 목록 것들입니다 전에 또는 후에 당신은 당신이 그들을 필요로하는 순서를해야합니다.
이것은 일반적 main()
으로 상단 또는 하단에 있음을 의미합니다 .
onPause()
, onResume()
등 내 모든뿐만 아니라, OnClickListener
그들이 필드가 있지만, 모양 또는가 합리적인 그래서 그들처럼 행동하지 않는, 필드, 별도로 나열하십시오.
또한 이클립스는 어떤 이유로 든 클래스 멤버를 혼합하면 클래스 멤버를 정렬 할 수 있습니다.
수업 파일을 열고 주 메뉴에서 "소스"로 이동하여 "회원 정렬"을 선택하십시오.