| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 945 人关注过本帖
标题:设计模式学习之路---Strategy(《Strategy模式的一个例子》改进)
只看楼主 加入收藏
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
 问题点数:0 回复次数:9 
设计模式学习之路---Strategy(《Strategy模式的一个例子》改进)
说明:之前的那个source只是完成了答案,他只是说明strategy模式的一种分析过程(详见附件的试卷中的解释)!改进后的source从java代码的完整性和可读性上做了一些修饰。但是设计模式的学习是路漫漫的,希望自己能坚持到底!给自己加油先!!!
/* Strategy */
import java.util.Scanner;
interface FlyBehavior {
 public void fly();
}
interface QuackBehavior {
 public void quack();
}
class FlyWithWings implements FlyBehavior{
 public void fly(){
  System.out.println("使用翅膀飞行~~~");
 }
}
class FlyNoWay implements FlyBehavior {
 public void fly(){
  System.out.println("偶的飞行特征:偶啊,不能飞行,可怜啊~~~");
 }
}
class Quack implements QuackBehavior{
 public void quack(){
  System.out.println("偶的发声特征:偶啊,发出\'嘎嘎\'声,不怎么好听!5555555~~~");
 }
}
class Squeak implements QuackBehavior {
 public void quack(){
  System.out.println("偶的发声特征:偶啊,发出与空气与橡皮摩擦声!~~~");
 }
}
class QuackNoWay implements QuackBehavior {
 public void quack(){
  System.out.println("偶的发声特征:偶啊,不能发声,是最可怜的啦,555555555~~~");
 }
}
abstract class Duck{
 protected FlyBehavior flyBehavior;
 protected QuackBehavior quackBehavior;
 public void fly(){
  flyBehavior.fly();
 }
 public void quack(){
  quackBehavior.quack();
 }
 public abstract void display();
}
class OneDuck extends Duck{
 private String duckName;
 public OneDuck(String duckName){
  this.duckName = duckName;
  flyBehavior = new FlyNoWay();
  quackBehavior = new Squeak();
 }
 public void display() {
  System.out.println("偶是 " + duckName + "~~~");
  flyBehavior.fly();
  quackBehavior.quack();
 }
}
public class Strategy {
 private static String duckName = "";
 public static void MainMenu(){
  
  System.out.println("@@@@@@@@@@@@@@@@@@@");
  System.out.println("1.RubberDuck");
  System.out.println("2.CottonoDuck");
  System.out.println("3.RedHeadDuck");
  System.out.println("4.MallardDuck");
  System.out.println("@@@@@@@@@@@@@@@@@@@");
  System.out.println();
  System.out.println("请选择一种鸭子种类");
  Scanner reader = new Scanner(System.in);
  int i = reader.nextInt();
  switch(i){
  case 1:
   duckName = "RubberDuck";
   break;
  case 2:
   duckName = "CottonoDuck";
   break;
  case 3:
   duckName = "RedHeadDuck";
   break;
  case 4:
   duckName = "MallardDuck";
   break;
  default:
   break;
  }
  if( i > 4 || i < 1)
   System.out.println("你的选择错误!");
  else
   (new OneDuck(duckName)).display();
 }
 public static void main(String[] args) {
  MainMenu();
 }
}
搜索更多相关主题的帖子: Strategy 模式 例子 void public 
2008-05-20 21:40
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
这个是软设的考试题目。。

学习需要安静。。海盗要重新来过。。
2008-05-20 21:55
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
觉得J2SE这块帖子极少啊,最近也只看见hanzhu3366有几贴,刚刚都把“新帖”翻了个遍,6页多啊!!!J2se的帖子就几篇,所以特来顶一下!!!
这好像是个普遍的问题,就连matrix,javaeye那样专业的java论坛,最近3,4天也很少更新了!!!
自己继续奋斗,相信不会寂寞,因为大伙的存在!!
2008-05-20 21:57
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
回复 2# 的帖子
是啊!我在上一篇日志中说过,试题在日志的附件里!

[[it] 本帖最后由 Ethip 于 2008-5-20 22:02 编辑 [/it]]
2008-05-20 21:59
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我也要参加考试,刚好前几天也看了下

学习需要安静。。海盗要重新来过。。
2008-05-20 22:03
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
回复 5# 的帖子
是5.24这次考试吗?
2008-05-20 22:07
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
是啊。。很有压力。。2进宫了

学习需要安静。。海盗要重新来过。。
2008-05-20 22:16
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
回复 7# 的帖子
哇哈哈!!!
我也是抱定了必挂的信心啊!估计在40分左右,但45是达不到的!所以还是很乐观,因为知道自己的基础非常不扎实,这次硬着头皮去啦!
还希望你能有好运!!!
Good luck to sunkaidong!
2008-05-20 22:22
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我上次是下午题挂了。。用心就可以过。。真的。。你也好运啊。。只要程序和算法题差不多,过问题不大

学习需要安静。。海盗要重新来过。。
2008-05-20 22:24
Ethip
Rank: 5Rank: 5
等 级:贵宾
威 望:15
帖 子:771
专家分:0
注 册:2008-1-18
收藏
得分:0 
回复 9# 的帖子
确实,下午题虽然只有几个题,但这些才算是软件工程的实质!!!做这些题目才有意思,但是困难也是相当的不小啊!算法题目我肯定是最后才去看的!软肋啊!!!
2008-05-20 22:40
快速回复:设计模式学习之路---Strategy(《Strategy模式的一个例子》改进)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.047501 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved