《Head First设计模式》读书笔记(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设计模式》里第一个设计模式的程序代码,有空再写下解释。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值