轉載請註明出處: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);
}
}