摘要:   閱讀全文

          posted @ 2008-05-19 22:19 sdl 閱讀(3468) | 評論 (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 閱讀(129) | 評論 (0)編輯 收藏

          僅列出標題
          共2頁: 上一頁 1 2 

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

          Copyright © sdl

          主站蜘蛛池模板: 乌审旗| 保靖县| 东山县| 普兰店市| 乌兰察布市| 深州市| 客服| 达孜县| 庐江县| 红河县| 金门县| 天等县| 济宁市| 崇信县| 南涧| 通海县| 唐山市| 普兰店市| 定南县| 灵璧县| 大关县| 东兰县| 腾冲县| 安乡县| 武宣县| 永康市| 长兴县| 吕梁市| 中宁县| 鹤山市| 泗洪县| 文化| 上犹县| 道真| 兴安县| 噶尔县| 阿荣旗| 克山县| 惠来县| 百色市| 丹凤县|