2011-11-07 5 views
3

클래스에 주석을 추가 할 수없는 상황이 있지만 편집 할 수없는 bean (코드)에 일종의 메타 데이터를 추가 할 수있는 방법이 있지만 리팩토링에서 생존 할 수있는 것은 무엇입니까? Bean을 확장 한 다음 그 클래스에 특수 효과를 추가하면 어떻게 될까요?특수 효과에 대한 대안은 무엇입니까?

+0

메타 데이터를 어떻게 사용할 것인지 명확히 할 수 있습니까? –

답변

2

이전 방법 인 마커 인터페이스는 Serializable 또는 Cloneable과 같은 메소드가없는 인터페이스를 사용합니다.

+1

마커 인터페이스는 악조건입니다! – Guillaume

+1

주석을 클래스에 추가 할 수 없다면 해당 클래스는 마커 인터페이스를 구현할 수 없다고 생각합니다. –

+0

@Guillaume 확실히,하지만 그는 물었다.) –

1

IDE에 따라 속성이나 XML과 같은 텍스트 파일의 클래스 나 방법 또는 필드를 참조하기 만하면됩니다. IDE는 클래스/메소드/필드의 이름을 바꿀 때 텍스트를 찾거나 바꾸기를 제안합니다.

1

(일부 refactors는 다른 클래스에 메서드를 이동이 잘 작동하지 않습니다하지만) 당신은 AOP http://static.springsource.org/spring/docs/2.5.x/reference/aop.html

그것은 당신의 클래스를 편집하지 않고, 당신은 외부에서 특정 방법으로 동작을 추가 할 수 있습니다 고려할 수 있습니다. 여분의 코드는 메소드 전후에있을 수 있습니다.

우리가 원하는 것을 정확하게 말하지 않고도 필요한 것을 추측하기가 어렵습니다.

+0

좋은 생각이지만 AOP에서 제공하는 정보를 다른 코드의 메타 데이터로 어떻게 사용할 수 있습니까? (죄송합니다. 나는 다른 대답에서 내 의견을 삭제했습니다. 귀하의 회신을 보지 못했습니다.) –

+0

나는 그 질문이 막연하다고 말했다. 그것은 단지 클래스를 변경하지 않고 클래스에 비헤이비어를 추가 할 수있는 가능한 해결책으로 나를 공격합니다. 기본적으로 주석 (can)이 제공하는 것입니다. 메타 데이터는 많은 다른 것들을 의미 할 수 있습니다. – Guillaume

0

다른 코드에서 사용하기 위해 메타 데이터가 필요합니까 아니면 사람이 읽을 수 있어야합니까?

당신은

0

당신은 메타 데이터를 병렬 클래스 계층 구조를 추가 할 수 있습니다 수업 (와 Javassist, 일부 AOP 등)에 데이터를 추가하는 코드 장비를 사용할 수 있습니다. BeanInfo 클래스와 같은 일종의 클래스는 Java bean에 대한 메타 데이터를 제공합니다.

0

코드를 수정할 수 없으면 클래스를 키로 사용하여 메타 데이터를 전역 맵에 넣을 수 있습니다.

관련 문제