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]