读书人

HeadFirst 多种形式组合使用

发布时间: 2012-10-10 13:58:11 作者: rapoo

HeadFirst 多种模式组合使用
我们要通过一个例子把前边学习过的设计模式串一遍,以一种需求不断叠加的实际工作场景为背景。首先我们还是把我们第一个模式所举的鸭子的例子搬出来,我们要创建一个模拟器对这些鸭子的叫声进行模拟:

首先我们设计一个呱呱叫的接口:

public interface Quackable {     public void quack(); }



接着我们让一些类实现这个接口——一些鸭子有这样的功能。

public class MallardDuck implements Quackable {     public void quack() {         System.out.println("Quack");     } }public class RedheadDuck implements Quackable {     public void quack() {         System.out.println("Quack");     } }


另外一些鸭子也叫唤,但是可能声音不同:

public class DuckCall implements Quackable {     public void quack() {         System.out.println("Kwak");     } }public class RubberDuck implements Quackable {     public void quack() {         System.out.println("Squeak");     } }


我们此时就可以创建模拟器了:

public class DuckSimulator {     public static void main(String[] args) {         DuckSimulator simulator = new DuckSimulator();         simulator.simulate();     }     void simulate() {         Quackable mallardDuck = new MallardDuck();//面向接口编程         Quackable redheadDuck = new RedheadDuck();         Quackable duckCall = new DuckCall();         Quackable rubberDuck = new RubberDuck();         System.out.println("\nDuck Simulator");         simulate(mallardDuck);         simulate(redheadDuck);         simulate(duckCall);         simulate(rubberDuck);     }     void simulate(Quackable duck) {//注意,我们在这使用了面向接口编程         duck.quack();     } }

读书人网 >软件架构设计

热点推荐