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 를 쪼개고.. 음.. 좀 더 고민을 해보고 이해가 깊어져야할듯. 

by givingsheart 2014. 1. 1. 15:19
| 1 |