글
java.Bean 패키지 분석중
1.java.beans.Beans 클래스엔
static Object getInstanceOf(Object bean, Class<T> targerType) 즉 빈에서 해당 타입의 객체 생성해주는 메서드
static Object instantiate(ClassLoader cls, String beanName) 오버라이딩된 메서드가 클래스 로더&이름을 통해
빈 객체를 생성했다.
2.java.beans.BeanDescripto 클래스엔 Beans클래스가 가져야할 타입 정보외 기타 정보를 관리해준다.
BeanDescriptor(Class<?> beanClass) 일반빈에 디스크립터 작성
BeanDescriptor(Class<?> beanClass, Class<?> customizerClass) 구체화시킨 빈에 디스크립터 작성
3.java.beans.MethodDescriptor 클래스엔 Beans클래스가 가져야할 타입외 메서드 관련 정보를 관리해준다.
Method geMethod() 디스크립터가 캡슐화한(특정 프로퍼티에) 메소드들 getter
ParameterDescriptor[] getParameterDescriptor() 빈이 해당 메소드에 연결된 매개변수 정보들 getter
즉 빈의 프로퍼티(캡슐화)-> 메서드A -> 파라미터A
-> 파라미터B
-> 파라미터C
-> 메서드 B ->파라미터 A
->파라미터B 식의 트리형태 구성
4.java.beans.PropertyChangeListenerProxy 클래스(이벤트 리스너 프록시 상속) 는 말 그대로 내가 만든 빈의
각 프로퍼티(attribute o member field or memberData)와 그에 해당하는 사용자의 입력등 이벤트를 핸들링
한다.
중요한 생성자 (이벤트 핸들러에 자신이 관심영역, 해당처리를 할 리스너를 연결) 컴포넌트에 addListener(MyListner)방식
PropertyChangeListenerProxy(String propertyName, PropertyChangeListener listener)
String gerPropertyName() 청취자가 관련지어진 프로퍼티의 식별자를 리턴
void propertyChange(PropertyChangeEvent evt) 프로퍼티에 관심 이벤트를 재 설정
//상속받은 메서드
public EventListner getListener() 해당 프로퍼티와 관련지어진 리스너를 리턴
5.java.Beans.PropertyChangeSupport 클래스(Object클래스 상속, 직렬화(Serializable) 구현)는 이벤트 핸들러의 역할
void addPropertyChangeListener(PropertyChangeListener listener) //청취자 추가
통지는 notify가 아닌, fireXXX 메서드를 사용
void fireIndexedPropertyChange(String propertyName, int index, boolean oldValue, boolean newVlaue)
6.그외에 XMLDecoder, XMLEncoder 클래스들이 눈에 띄었음.
7.java.awt.component 클래스에서도
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.beans.PropertyChangeEvent;
등을 사용 한다는 것에 웬지 웃음이 나오고 존경심이 든다.
객체지향 만세! java frame work 만세!
역할별로 1과2 4와 5를 쪼개고, 특징별로 1과 3 를 쪼개고.. 음.. 좀 더 고민을 해보고 이해가 깊어져야할듯.
RECENT COMMENT