Java Reflection

리플렉션이란 객체를 통해 클래스의 정보를 분석해 내는 프로그램 기법을 말한다. 투영, 반사 라는 사전적인 의미를 지니고 있다.

Reflection으로 동적으로 인스턴스를 생성 할 수 있다

if/else 문을 이용한 Factory

public class MouseFactory{
 public Object getInstance(String name){
     if(name.equals("a")){
         return new MouseA();
     }else if(name.equals("b"){
         return new MouseB();
     }
     return null;
 }
}

Reflection 을 이용한 Factory

public class MouseFactoryReflection{
    public Object getInstance(String className) throws Exception{
    Class cls = Class.forName(className);
    Constructor constructor = cls.getConstructor();
    return constructor.newInstance();
    }
}