2013-07-16 3 views
0

기능을 일반화하기 위해 몇 가지 기본 클래스를 만들었습니다. 이러한 클래스는 같은 콘크리트 CDI 콩 상속 :JSF/CDI 빈을위한 추상 기본 클래스의 Serializable

@Named 
@WhateverCdiScoped 
public class PseudoEntityManager extends AbstractManager<PseudoEntity> implements Serializable 
{ 
    ... 
} 

Q의 :

는 구현이되지 않도록, 여기에 추상 기본 클래스, AbstractManager<T> 위에 Serializable 인터페이스를 넣어하는 것이 좋습니다 위에 표시된 것처럼 각 콘크리트 하위 클래스에 implements Serializable을 넣어야합니까?

"기본 클래스 정책"과 "구체적인 하위 클래스 정책"에 대한 장단점은 무엇입니까?

간과 된 다른 결과가 있습니까? private static final long serialVersionUID = ...;의 위치에 대해?

+1

나는 이것을 POJO와 함께했다. POJO는 직렬화 할 것이므로'Serializable'을 구현하는 추상 수퍼 클래스를 갖는 것이 이치에 맞습니다. 그것이 콩의 경우에는 확실히 모릅니다. –

답변

0

이렇게하면 각 클래스에는 고유 한 serialVersionUID가 있어야합니다 (비공개이므로 해당 클래스에만 속합니다).

나머지 질문은 실제로 코딩 표준 질문입니다. 내 개인적인 견해는 serializable뿐만 아니라 대부분의 다른 마커 인터페이스는 다른 인터페이스와 같습니다. 그들은 다형성을 잘 처리하므로 인터페이스 사용을 재 선언 할 필요가 없습니다. 당신이하고있는 모든 작업이 직렬화가 가능하다는 것을 이해하십시오. 이 작업을 통해 CDI 범위를 적용하지 않아도됩니다.

관련 문제