흠 흥미로운 클래스구조를 발견함
//
package com.jetddo.study.test;
public interface Page {
public void message();
}
//////////////////////////////////
package com.jetddo.study.test;
public class BasePage implements Page {
protected static Page m_instance;
public static Page getInstance(){
if(m_instance == null){
m_instance = new BasePage();
}
return m_instance;
}
public void message(){
System.out.println("Base Page");
}
}
////////////////////////////////////////
package com.jetddo.study.test;
public class ExecPage extends BasePage {
public static Page getInstance(){
if(m_instance == null){
m_instance = new ExecPage();
}
return m_instance;
}
public void message(){
System.out.println("Exec Page");
}
}
//////////////////////////////////////
싱글톤 기법인거 같은데..
protected 로 선언하면서
확장도 가능하게 변형한거 같다.
//
package com.jetddo.study.test;
import org.junit.Test;
public class TestMain {
@Test
public void test(){
ExecPage.getInstance();
BasePage.getInstance().message();
}
}
//
m_Instance 가 static 인것을 이용해 클래스간의 변수를 공유하게 하는 방법이다.
클래스를 재정의 하고 싶다면 구현후 ExecPage.getInstance(); 이것만 추가하면 객체가 바뀐다.
댓글 없음:
댓글 쓰기