关闭

《Head First设计模式》读书笔记(1)

标签: 设计模式读书classinterfacestringfloat
1846人阅读 评论(1) 收藏 举报
分类:

这段时间看《Head First设计模式》,今晚按第一章的描述写了个测试程序。程序代码以下:

===================================

Duck.java

public abstract class Duck {

 

    public FlyBehavior flyBehavior;

    public QuackBehavior quackBehavior;

   

    public Duck(){}

   

    public abstract void display();

   

    public void swim()

    {

        System.out.println("All ducks float,even decoys!");

    }

   

    public void performQuack()

    {

        flyBehavior.fly();

    }

   

    public void performFly()

    {

        quackBehavior.quack();

    }

}

===================================

FlyBehavior.java

public interface FlyBehavior {

    public void fly();

}

===================================

FlyNoWay.java

public class FlyNoWay implements FlyBehavior {

    public void fly() {

        // TODO Auto-generated method stub

        System.out.println("I can't fly!!");

    }

}

===================================

FlyWithWings.java

public class FlyWithWings implements FlyBehavior {

    public void fly() {

        // TODO Auto-generated method stub

        System.out.println("I'm flying!!");

    }

}

===================================

QuackBehavior.java

public interface QuackBehavior {

    public void quack();

}

===================================

Quack.java

public class Quack implements QuackBehavior {

    public void quack() {

        // TODO Auto-generated method stub

        System.out.println("Quack");

    }

}

===================================

Squeak.java

public class Squeak implements QuackBehavior {

    public void quack() {

        // TODO Auto-generated method stub

        System.out.println("Squeak");

    }

}

===================================

MuteQuack.java

public class MuteQuack implements QuackBehavior {

    public void quack() {

        // TODO Auto-generated method stub

        System.out.println("<<Silence>>");

    }

}

===================================

MallardDuck.java

public class MallardDuck extends Duck {

    public MallardDuck()

    {

        flyBehavior=new FlyWithWings();

        quackBehavior=new Quack();

    }

   

    @Override

    public void display() {

        // TODO Auto-generated method stub

        System.out.println("I'm a real Mallard duck");

    }

}

===================================

ModelDuck.java

public class ModelDuck extends Duck {

    public ModelDuck()

    {

        flyBehavior=new FlyNoWay();

        quackBehavior=new Quack();

    }

   

    @Override

    public void display() {

        // TODO Auto-generated method stub

        System.out.println("I'm a model duck");

    }

}

===================================

DuckSimulator.java

public class DuckSimulator {

 

    public static void main(String[] args) {

        // TODO Auto-generated method stub

        Duck mallard=new MallardDuck();

        mallard.performFly();

        mallard.performQuack();

       

        Duck model=new ModelDuck();

        model.performFly();

        model.performQuack();

    }

}

===================================

输出结果以下:

Quack

I'm flying!!

Quack

I can't fly!!

===================================

以上就是Head First设计模式》里第一个设计模式的程序代码,有空再写下解释。

 
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

深入浅出数据分析读书笔记(head first into data analysis)

第一章  我要研究的对象是什么,分析的重点是什么,我要解决什么? 第二步:将主要的大问题分解为无数的小问题,当小问题解决了,大问题自然迎刃而解。 第三步:评估,将得到的数据拆分 对比 得出...
  • u012175010
  • u012175010
  • 2013-09-24 15:06
  • 2133

O'Reilly之深入浅出Head First系列的中文版与英文版合集

Head First系列是O’Reilly出版社最成功的系列图书,自问世以来受到了无数读者的喜爱,并屡获大奖。其图文并茂,讲述编程技术由浅到深,也被称为“深入浅出”系列,是不可多得的各阶段程序员的参考...
  • Torchfire
  • Torchfire
  • 2013-10-05 21:16
  • 41464

【JS第一本】head first Javascript 读书笔记

JavaScript  DOM编程艺术这本书看到第八章就没有再读下去了。感觉不太适合现在来读,所以重新选择了这本head first Javascript作为第一本入门书,希望通过这本书重新梳理之前在...
  • Creabine
  • Creabine
  • 2015-12-17 13:47
  • 3102

《HEAD FIRST JAVA》第一次回顾和整理

《HEAD FIRST JAVA》第一次回顾和整理 第一章 进入Java的世界(基本概念) 主要介绍了Java的工作原理,发展简史,程序结构和一些简单的语法。学过其他语言的人表示这章完全没有压力。...
  • zhanghongzheng3213
  • zhanghongzheng3213
  • 2016-06-07 18:02
  • 1656

《Head First Java》学习整理

序言:假期自学Java,首先选择了这本《Head First Java》,读起来,兴趣十足,一周时间结束。真切感觉这本书对学习Java的思想很有帮助,只是内容并不细致,对于每一部分,可以很形象的让你理...
  • KevinBetterQ
  • KevinBetterQ
  • 2016-09-07 20:44
  • 1787

调侃《Head First设计模式》之总结篇

在之前的设计模式博客中,主要根据《Head First设计模式》谈了10个设计模式,今天来做下总结,好好梳理提炼x下精华,而且今天准备把GOF经典大作《设计模式》中的23个设计模式都总结一遍。(以下内...
  • sinat_23092639
  • sinat_23092639
  • 2015-06-27 09:38
  • 2173

Head First设计模式C++实现--第一章:策略模式

策略模式
  • FightForProgrammer
  • FightForProgrammer
  • 2014-06-21 22:51
  • 1668

调侃《First head 设计模式》之状态模式篇

现在有个糖果控制器,它的运行状态图如下:          我们要用java来实现这个糖果控制器。首先需要用一些实例变量来表示不同的状态:          我们的思路是创建一个糖果控制器类,...
  • sinat_23092639
  • sinat_23092639
  • 2015-05-24 10:42
  • 1067

图解 head first 设计模式

个人笔记,比较粗糙。详细内容请参考《head first 设计模式》 strategy 基础:抽象、封装、多态、继承 原则 封装变化:找出会变化的方面,把它们从不变的部分分离出来。 多用组合、少用继承...
  • qq_24145735
  • qq_24145735
  • 2016-07-16 23:13
  • 3063

《Head First jQuery》读书笔记

第一章 jQuery入门
  • kiwi_coder
  • kiwi_coder
  • 2014-06-03 14:14
  • 1616
    个人资料
    • 访问:669153次
    • 积分:6249
    • 等级:
    • 排名:第4586名
    • 原创:163篇
    • 转载:8篇
    • 译文:1篇
    • 评论:116条
    博客专栏
    文章分类
    最新评论