学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
发新话题
打印

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

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();
}
}
[b]附件:[/b]
[url=http://hi.bccn.net/batch.download.php?aid=495][b]2007年上半年软件设计师下午试卷.rar[/b][/url]
[时间:2008-5-17 22:54 - 下载次数:0]

TOP

Head First 设计模式
博客:http://beniao.cnblogs.com

TOP

回复 2# beniao 的帖子

a good book
Java Lover QQ Group : 64666806

TOP

发新话题