摘要:   阅读全文

posted @ 2008-05-19 22:19 sdl 阅读(3452) | 评论 (0)编辑 收藏

这几天正在看《frist-head设计模式》这本书感觉写的确实不错,内容通俗易懂!
        下面是摘抄的书上面的第一个例子。

        1:重点理解变化和不变化的部分
//超类Duck

public abstract class Duck {
 
 FlyBehavior flyBehavior;
 QauckBehavior qauckBehavior;
 
 public void performQuack()
 {
  qauckBehavior.quack();
 }

 public void performFly()
 {
  flyBehavior.fly();
 }
 public void swim()
 {
  System.out.println("ALL duck float!!!!");
 }
}
//飞的行为类

public interface FlyBehavior {
 
 public void fly();

}

public class FlyingWithWing implements FlyBehavior{

 public void fly() {
  System.out.println("I can flying!!!");
  
 }

}


public interface QauckBehavior {

 public void quack();
}


public class Quack implements QauckBehavior{

 public void quack() {
  
  //内容
 }

}


public class MallardDuck  extends Duck{
 //这里可以不在构造器中去实现,可以在Set方法法把变量给赋值。
 //可以理解一下动态的设定他的行为的含义。
 //如果放到Set方法中把Quack类或者FlyingWithWing作为参数传进去则可以完成
 //动态设定他们的行为了。
 public MallardDuck()
 {
  //qauckBehavior =  new Quack();
  //flyBehavior = new FlyingWithWing();
  
 }
 public void setQuackBehavior(Quack quack)
 {
  //内容
  qauckBehavior =  new Quack();
 }
 //外面调用
 public void setQuackBehavior(FlyingWithWing flyWithWing)
 {
  //内容
  flyBehavior =  new FlyingWithWing();
 }
}

posted @ 2008-05-19 22:08 sdl 阅读(127) | 评论 (0)编辑 收藏

仅列出标题
共2页: 上一页 1 2 

posts - 12, comments - 2, trackbacks - 0, articles - 0

Copyright © sdl