当前位置: 代码迷 >> Java Web开发 >> Strategy模式的一个例子--2007上半年年软设下午卷试题7
  详细解决方案

Strategy模式的一个例子--2007上半年年软设下午卷试题7

热度:106   发布时间:2008-05-17 22:37:13.0
Strategy模式的一个例子--2007上半年年软设下午卷试题7
下周六就要考试了,发个帖。暂时离开下,要去抱抱佛脚哦!
源代码,自己完成的,还没有对答案!运行了下,没有问题。就不想去看答案了!
更加详细的源码,考完后再发!设计模式听起来很吓人,实际上,自己动手了,就好说!!呵呵!!
/* 原题见附件 */
/* Strategy.java */
package pattern;
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("发出\'嘎嘎\'声!~~~");
}
}
class Squeak implements QuackBehavior {
public void quack(){
  System.out.println("发出与空气与橡皮摩擦声!~~~");
}
}
class QuackNoWay implements QuackBehavior {
public void quack(){
  System.out.println("不能发声!~~~");
}
}
abstract class Duck{
protected FlyBehavior flyBehavior;
protected QuackBehavior quackBehavior;
public void fly(){
}
public void quack(){
}
public abstract void display();
}
class RubberDuck extends Duck{
public RubberDuck(){
  flyBehavior = new FlyNoWay();
  quackBehavior = new Squeak();
}
public void display() {
  System.out.println("我是RubberDuck!~~~");
  flyBehavior.fly();
  quackBehavior.quack();
}
}
public class Strategy {
public static void main(String[] args) {
  (new RubberDuck()).display();
}
}
附件:
[url=http://hi.bccn.net/batch.download.php?aid=495]2007年上半年软件设计师下午试卷.rar[/url]
[时间:2008-5-17 22:54 - 下载次数:0]
搜索更多相关主题的帖子: Strategy  试题  源代码  模式  例子  

----------------解决方案--------------------------------------------------------
Head First 设计模式
----------------解决方案--------------------------------------------------------
回复 2# beniao 的帖子
a good book

----------------解决方案--------------------------------------------------------
  相关解决方案