23가지 디자인 모델---비망록 모델

비망록 모드
      

1. 하나의 게임에 비망록을 만드는 방법이 있는데 이 방법은 현재 게임의 진도를 비망록에 저장하고 비망록으로 되돌려준다.또 하나는 비망록을 받아서 비망록의 데이터를 게임으로 복원하는 것이다.
public class Game {
    int gamelv;
    String name;
    String age;
    String password;

    public Game(int gamelv, String name, String age) {
        this.gamelv = gamelv;
        this.name = name;
        this.age = age;
    }

    public Game() {
    }

    public Memento createMemento() {
        return new Memento(this.gamelv,this.name,this.age);
    }

    public void restoreMemento(Memento memento) {
        this.gamelv = memento.gamelv;
        this.name = memento.name;
        this.age = memento.age;
    }

    public int getGamelv() {
        return gamelv;
    }

    public void setGamelv(int gamelv) {
        this.gamelv = gamelv;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

2. 비망록의 종류
public class Memento {
    int gamelv;
    String name;
    String age;


    public Memento(int gamelv, String name, String age) {
        this.gamelv = gamelv;
        this.name = name;
        this.age = age;
    }

    public int getGamelv() {
        return gamelv;
    }

    public void setGamelv(int gamelv) {
        this.gamelv = gamelv;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }
}

3. 비망록 관리자, 하나는 현재 관리자의 비망록을 얻는 것이고, 다른 하나는 게임이 만든 비망록을 관리자에게 저장하는 것이다.
public class Caretaker {
    //     
    private Memento memento;

    public Memento getMemento() {
        return memento;
    }
    public void setMemento(Memento memento) {
        this.memento = memento;
    }
}

4. 테스트
public class Test {
    public void test() {
        Game game = new Game();
        game.setAge("11");

        Caretaker caretaker = new Caretaker();  //      

        caretaker.setMemento(game.createMemento());  //  Game  

        game.setGamelv(22);  //  game  

        game.restoreMemento(caretaker.getMemento());  //  game  

    }
}

좋은 웹페이지 즐겨찾기