2013-11-01 2 views
7

jdk8의 decision to deprecate them에 대해 지나치게 불만스러워하지는 않지만 빌더를 사랑하는 사람은 거의 없습니다.하지만 더 이상 사용되지 않는 패키지가 있습니다. 실제로는 제품의 인스턴스화 방법 : javaBean 속성에 대한 어댑터 - 버그 또는 기능?모든 fx 빌더는 더 이상 사용되지 않습니다 ... .adapter의 묶음을 제외하고?

질문 : 그들은 최종 릴리스에서뿐만 아니라

  • 를 더 이상 사용되지 않습니다?
  • 그렇지 않은 경우, 바이너리 호환성을 손상시키지 않는 이유가 무엇입니까?

답변

3

어댑터 빌더는 "scenegraph 오브젝트"빌더의 별도 입니다. NodeBuilder (장면과 관련된 다른 모든 객체 작성자의 부모)는 하위 클래스로 만들지 않습니다. OpenJFX 팀은 플랫 접근 방식 대신 바이트 코드 크기와 작업을 절약하기 위해 generics를 사용하여 Node의 모든 하위 클래스에 대한 빌더를 구현하기로 결정했기 때문에이 문제가 발생했습니다 (코드 작성, 유지 보수 및 거대한 바이트 코드 크기).

어댑터의 빌더는 "flat" 빌더이며 빌더에는 상위가 없음을 의미합니다. 각각의 "기본"속성 유형에 대해서만 빌더가 있고, 리플렉션마다 getters 및 setter를 읽는 객체 속성에 대한 빌더가 있기 때문에 자연스럽고 쉽습니다.

즉, 어댑터 제조업체 인에 대해서는 에 문제가 없으므로 이진 호환성을 손상시키지 않습니다. 빌더를 통해서만 노출되는 이유와 사용되지 않는 이유는 나를 넘어선 것입니다.

+0

소리가 매우 설득력이 있습니다 - 어떻게 든 _subclassing_ 측면을 토론에서 놓쳤습니다. – kleopatra