不同的年龄阶段喜欢不同的女孩 (状态模式)

讨媳妇的男孩
public class Boy {
 
 DreamGirl dreamGirl; //梦中的女孩
 int ages;            //自己的年龄
     
    //找女朋友的方法                  
 public void find_GirlFriend(){
  
  dreamGirl.do_Something_for_boy(this);
 }
  
 public void setAges(int ages) {
  this.ages = ages;
 }
  
 public void setDreamGirl(DreamGirl dreamGirl) {
  this.dreamGirl = dreamGirl;
 }
 
 public static void main (String[]args){
  // 男孩汉语拼音叫ysen 
  Boy ysen=new Boy();
  //ysen的年龄
  ysen.setAges(41);
  //最开始的梦中女孩是漂亮的哦
  BeautifulGirl beautifulGirl = new BeautifulGirl();
  //把漂亮的女孩放在自己的 梦中女孩的位置上咯
  ysen.setDreamGirl(beautifulGirl); 
  //ysen 启动找女孩的方法啦
  ysen.find_GirlFriend();
  
 }
}

 

 

//男孩心中抽象的梦中女孩
public abstract class DreamGirl {
 // 希望梦中女孩能给男孩做的事
 public abstract void do_Something_for_boy(Boy boy);

}


 

 

//一位漂亮的女孩呵呵
public class BeautifulGirl extends DreamGirl {
  
  
 public void do_Something_for_boy(Boy boy) {
  
  if(  18<=boy.ages && boy.ages<25 ){
   
   System.out.println("我没钱 愤青 所以找到个同座女孩做女友 此时男孩的年龄在18 到 24 之间");
  }else{
   
   System.out.println("人奔30了事业有成 好寂寞,找个活泼爱讲话的老婆。。。寻找中。。。男孩的年纪 大于等于25");
   LooksMediocreGirl looksMediocre =new LooksMediocreGirl();
   boy.setDreamGirl(looksMediocre);
   boy.find_GirlFriend();
   
  }
  
 }

}

 

//相貌平平的女孩 呵呵
public  class LooksMediocreGirl extends DreamGirl {

 public void do_Something_for_boy(Boy boy) {
  
  
  if(  25<=boy.ages && boy.ages<30 ){
   
   System.out.println("找到个相貌平平的女孩 一起过过日子咯呵呵 此时男孩的年龄在25 到 29 之间");
  }else{
   
   System.out.println("人到壮年 一直单身。找个活泼点的媳妇。。寻找中。。。男孩的年纪 大于等于30");
   LivelyGirl livelyGirl =new LivelyGirl();
   boy.setDreamGirl(livelyGirl);
   boy.find_GirlFriend();
   
  }

 }

}


 

//一位活泼的女孩呵呵
public class LivelyGirl extends DreamGirl {

  
 public void do_Something_for_boy(Boy boy) {
   

  if(  30<=boy.ages && boy.ages<35){
   
   System.out.println("人到壮年 一直单身  还好找到个活泼的女孩 此时男孩的年龄在30 到 34 之间");
  }else{
   
   System.out.println("人到中年 讨个媳妇不容易。还是找个理智点的媳妇。。寻找中。。。男孩的年纪 大于等于35");
   SensibleGirl sensibleGirl =new SensibleGirl();
   boy.setDreamGirl(sensibleGirl);
   boy.find_GirlFriend();
   
  }
 }

}

 

 

//一位理智的女孩 呵呵
public class SensibleGirl extends DreamGirl {

 
 public void do_Something_for_boy(Boy boy) {
  
  if(  35<=boy.ages && boy.ages<40){
   
   System.out.println("人到中年 都成单身国王了  还好找到个理智点的媳妇,还是80后的呵呵  此时男孩的年龄在35 到 39 之间");
  }else{
   
   System.out.println("老咯,又没钱,不找咯养只宠物算了 男孩的年纪 大于等于40");
  }
  

 }

}


 

 下面是打印结果啦

1:

 

 

打印的结果  条件 男孩的年龄在 41
 
人奔30了事业有成 好寂寞,找个活泼爱讲话的老婆。。。寻找中。。。男孩的年纪 大于等于25
人到壮年 一直单身。找个活泼点的媳妇。。寻找中。。。男孩的年纪 大于等于30
人到中年 讨个媳妇不容易。还是找个理智点的媳妇。。寻找中。。。男孩的年纪 大于等于35
老咯,又没钱,不找咯养只宠物算了 男孩的年纪 大于等于40

 

2:

打印的结果  条件 男孩的年龄在 20
我没钱 愤青 所以找到个同座女孩做女友 此时男孩的年龄在18 到 24 之间

 

3:

 

打印的结果  条件 男孩的年龄在 25
 
人奔30了事业有成 好寂寞,找个活泼爱讲话的老婆。。。寻找中。。。男孩的年纪 大于等于25
找到个相貌平平的女孩 一起过过日子咯呵呵 此时男孩的年龄在25 到 29 之间

 

4:

 

打印的结果  条件 男孩的年龄在 30
 
人奔30了事业有成 好寂寞,找个活泼爱讲话的老婆。。。寻找中。。。男孩的年纪 大于等于25
人到壮年 一直单身。找个活泼点的媳妇。。寻找中。。。男孩的年纪 大于等于30
人到壮年 一直单身  还好找到个活泼的女孩 此时男孩的年龄在30 到 34 之间

 

 

5:

 

打印的结果  条件 男孩的年龄在 30

 
人奔30了事业有成 好寂寞,找个活泼爱讲话的老婆。。。寻找中。。。男孩的年纪 大于等于25
人到壮年 一直单身。找个活泼点的媳妇。。寻找中。。。男孩的年纪 大于等于30
人到中年 讨个媳妇不容易。还是找个理智点的媳妇。。寻找中。。。男孩的年纪 大于等于35
人到中年 都成单身国王了  还好找到个理智点的媳妇,还是80后的呵呵  此时男孩的年龄在35 到 39 之间

你可能感兴趣的:(设计模式之状态模式)