/** 요구사항 */
3개화면에 버튼 1개씩있고 각 버튼을 선택하면 다음화면에 각기 해당하는 내용이 표시.
단, 정상작동이 목적이 아님으로 개념상으로 작성.
/** 버튼ACTION class*/
public class Action {
ButtonAction buttonAction = null;
public Action(ButtonAction _buttonAction){
this.buttonAction = _buttonAction;
}
public void execute(){
buttonAction.action();
}
}
/** 버튼 interface */
public interface ButtonAction{
public abstrack void action();
}
/** 버튼1 class */
class ButtonType1 implements ButtonAction{
void action(){
System.out.println("버튼1에서 요청됨");
}
}
/** 버튼2 class */
class ButtonType2 implements ButtonAction{
void action(){
System.out.println("버튼2에서 요청됨");
}
}
/** 버튼3 class */
class ButtonType3 implements ButtonAction{
void action(){
System.out.println("버튼3에서 요청됨");
}
}
/** 페이지 1*/
class Page1 {
Action action = new Action(new ButtonType1());
new PageDetail(action);
}
/** 페이지 2*/
class Page2 {
Action action = new Action(new ButtonType2());
new PageDetail(action);
}
/** 페이지 3*/
class Page3 {
Action action = new Action(new ButtonType3());
new PageDetail(action);
}
/** 상세페이지*/
class PageDetail {
public PageDetail (ButtonAction _buttonAction){
_buttonAction.execute();
}
}
|
이게 맞는지는 모르겠지만..
interface를 사용함으로써 이후 소스수정시 유연함이 높아졌다.
페이지가 더 늘러나더라도 상세페이지class를 수정 할 필요가 없다.
어법상말고 개념상 잘못된부분있으면 댓글달아주세요 ^^
[작성자]
devbible.tistory.com