Java設計模式_行爲型_訪問者模式_每個人的不同結果

轉載請註明出處:http://blog.csdn.net/ljmingcom304/article/details/50401838
本文出自:【樑敬明的博客】

1.這個世界有很多事情

  這個世界上存在很多事情,每個人都有各自要做的事情,有屬於你的事情,當然也有屬於我的事情,不過我們都在爲各自的事情努力奮鬥。

//這個世界存在的很多事情
public interface Goal {

}

//我有我的目標
public interface YouGoal {
    //我要實現我的目標
    public void doSomething(You man);
}


//你有你的目標
public interface MeGoal {
    //你要實現你的目標
    public void doSomething(Me woman);
}

2.這個世界也有很多人

  當然這個世界也有很多人,最終可以分爲兩類人,你和我!

//世界存在很多人
public interface Person {
    //每個人都有各自的奮鬥目標
    public void accept(Goal goal);
}

//世界中的你
public class You implements Person{
    //你爲你的目標而奮鬥
    @Override
    public void accept(Goal goal) {
        if(goal instanceof YouGoal){
            YouGoal mv = (YouGoal) goal;
            mv.doSomething(this);
        }
    }
}

//世界中的我
public class Me implements Person{
    //我爲我的目標而奮鬥
    @Override
    public void accept(Goal goal) {
        if(goal instanceof MeGoal){
            MeGoal wv = (MeGoal) goal;
            wv.doSomething(this);
        }
    }
}

3.結果是成功還是失敗?

  不論是你和我,有失敗也會有成功,不管是成功還是失敗,只要我們坦然面對。

//成功了又怎樣
public class Success implements Goal, YouGoal, MeGoal {

    //你的成功
    @Override
    public void doSomething(You you) {
        System.out.println("你的成功歷程");
    }

    //我的成功
    @Override
    public void doSomething(Me me) {
        System.out.println("我的成功歷程");
    }

}

//失敗了又如何
public class Fail implements Goal, YouGoal, MeGoal {

    // 你的失敗
    @Override
    public void doSomething(You you) {
        System.out.println("你的失敗經歷");
    }

    // 我的失敗
    @Override
    public void doSomething(Me me) {
        System.out.println("我的失敗經歷");
    }

}

4.一花一世界、一葉一菩提

  無論你還是我,還是千千萬萬的其他人,我們都生活在同一個世界中,世界足夠美好,我們纔會有過去和未來。

//一花一世界,一葉一菩提
public class World {

    private List<Person> elements = new ArrayList<Person>();

    //勇敢面對未來
    public void attach(Person element) {
        elements.add(element);
    }

    //不要留戀過去
    public void detach(Person element){
        elements.remove(element);
    }

    //奮鬥總有結果
    public void display(Goal visitor) {
        for (Person p : elements) {
            p.accept(visitor);
        }
    }
}

5.實踐是檢驗真理的唯一標準

  那我們回到現實世界,爲了我們的目標努力奮鬥着,感受着失敗與成功的苦與樂。

public class Practice {

public static void main(String[] args) {
    //一個世界
    World obj = new World();

    //世界中的你和我
    obj.attach(new You());
    obj.attach(new Me());

    //有成功
    Success success = new Success();
    obj.display(success);

    //也有失敗
    Fail fail = new Fail();
    obj.display(fail);
}

}

   
    
發佈了39 篇原創文章 · 獲贊 14 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章