2011-01-19 9 views
0

C# 배경에서 가져 오는 데는 검색 시간이 오래 걸리지 않는 속성과 무언가가 길면 (msdn link) getX 메서드를 사용합니다. Java에서는 속성이 없기 때문에 두 경우 모두 getX을 사용합니까 아니면 신속한 액세스가 아니라 문서화가 아닌 빠른 액세스를 나타내는 다른 규칙이 있습니까?getX 메서드를 사용하는 경우

편집 : 예를 들어 당신은 또한 데이터베이스 액세스와 같은 GET 작업 소요 시간에 대해 다른 명명 규칙을 사용하거나 것은 getX 명명 규칙을 사용합니까?

+0

자바에서는 호출자가 메서드가 오랜 시간이 걸릴지를 알고 있어야 할 경우 다른 메서드를 호출해야한다는 것을 알 필요가 없습니다. –

답변

4

일반적으로 getX() 메서드는 빠른 액세스 메서드로 간주되며 데이터베이스 기반 메서드는 findX() 또는 loadX()이거나 그 행에있는 것이어야합니다. 그러나 내가 아는 한 전역 적 합의가 없습니다. 심지어 "getters 빨리해야한다"규칙은 때로는 준수하지 않습니다.

0

그것은 상황에 따라 달라집니다 당신이하고있는 정확하게 - 정상 "싼"속성이나 때로는 getX - 예를 들어, 당신은 loadX, fetchX, computeX을 사용할 수 있습니다.

2

getX 규정은 JavaBean 사양입니다. 최근에는 과 Hibernate을 비롯하여 많은 프레임 워크가 getter 및 setter를 사용하여 객체를 조작하므로 POJOs (Plain Old Java Objects)의 사용이 널리 보급되었습니다. 구체적

하십시오 nonboolean X 부울 X (흡착제)에 대한 (게터)

  • isXX (세터)의 임의의 값
  • setX
  • 위한

    • getX POJO의 사용을 요구하는 프레임 워크를 사용하지 않는다면 꼭 부탁합니다 얼핏 보면 그들이하는 일을 알 수 있도록 메소드의 이름을 지정하십시오.

    +0

    부울 반환 유형에 대해 isX를 알고 있습니다. 필자는 리턴 타입보다는 액세스 속도에 기반한 명명에 초점을 맞추고있다. 즉, 처리하는 데 시간이 걸리는 경우 여전히 'getX'여야합니다. – Cornelius

    +0

    @ 코넬리우스 : 나는 말할 수 있습니다.'getX'는 변수에 대한 기본 접근을 위해 사용되어야합니다. 시간이 걸리는 작업 (db 액세스, 계산, 처리 등)에는 적절한 명명 체계를 사용하십시오. – darioo

    +0

    나는 boolean을위한 isX 규칙을 결코 좋아하지 않았다. 그것은 나에게 냄새가 난다. 왜 약간 더 나은 가독성을 위해 완벽하게 깨끗한 패턴을 깰 수 있습니까? 실제로 종종 더 이상 읽을 수없는 시간입니다! 그리고 타자를 치는 목표. Eclipse의 은 부울을 놓치지 않습니다! 죄송합니다 접선, 그게 항상 나를 귀찮게 .. :) – romacafe

    0

    일반적으로 속성에 로컬 액세스를위한 개인 멤버 필드를 만들고 외부 액세스 용으로 getter/setter를 만듭니다.

    Spring과 같은 써드 파티 라이브러리는 의존성 삽입 (제어 반전)을위한 공개 메소드와 애스펙트 지향 프로그래밍에 의존하기 때문에 getter/setters를 사용하면 프로그래밍 스타일을 쉽게 사용할 수 있습니다.

    예를 들어 Spring은 두 객체를 연결하는 데 사용될 수 있습니다. 또는 AOP를 사용하여 다소 비싼 get 작업을 통해 캐싱 동작을 설정할 수도 있습니다.

    또한 속성을 변경하거나 검색 할 때 중단 점을 설정하고 디버깅에 유용 할 수있는 로깅 등을 추가 할 수 있습니다.

    관련 문제