码迷,mamicode.com
首页 > 其他好文 > 详细

简单接口回调例子

时间:2019-01-19 23:25:36      阅读:364      评论:0      收藏:0      [点我收藏+]

标签:bst   lan   min   代码   info   转发   接口回调   技术   截图   

转发有关面向抽象编程和面向接口编程一篇文章https://www.cnblogs.com/chiweiming/p/9229457.html

以下是面向接口编程的一个例子

某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如下表所示。

鸭子种类及其特征

鸭子种类

发声特征

飞行特征

外观特征

灰鸭( MallardDuck)

发出“嘎嘎”声(Quack)

翅膀飞行(FlyWithWings)

灰色羽毛

红头鸭(RedHeadDuck)

发出“嘎嘎”声(Quack)

翅膀飞行(FlyWithWings)

灰色制毛-红头

棉花鸭(CottonDuck)

不发声(QuackNoWay)

不能飞行( FlyNoWay)

白色

橡皮鸭(RubherDuck)

发出橡皮与空气摩擦声(Squeak)

不能飞行( FlyNoWay

黑白橡皮色

为了支持将来能够模拟更多种类鸭子的特征,决定采用策略(Strategy)模式。试画出对应的设计模式的类图结构图。

以下是类图:

 

以下是接口代码:

public interface DUCK {
    public abstract void voice();
    public abstract void fly();
    public abstract void show();
}

以下是实现接口的类代码:

public class MallardDuck implements DUCK{
    public void voice() {
        System.out.print("发出“嘎嘎”声(Quack)");
    }
    public void fly() {
        System.out.print("翅膀飞行(FlyWithWings)");
    }
    public void show() {
        System.out.println("灰色羽毛");
    }
}
public class RedHeadDuck implements DUCK {
    public void voice() {
        System.out.print("发出“嘎嘎”声(Quack)");
    }
    public void fly() {
        System.out.print("翅膀飞行(FlyWithWings)");
    }
    public void show() {
        System.out.println("灰色制毛-红头");
    }
}
public class CottonDuck implements DUCK {
    public void voice() {
        System.out.print("不发声(QuackNoWay)");
    }
    public void fly() {
        System.out.print("不能飞行( FlyNoWay)");
    }
    public void show() {
        System.out.println("白色");
    }
}
public class RubherDuck implements DUCK {
    public void voice() {
        System.out.print("发出橡皮与空气摩擦声(Squeak)");
    }
    public void fly() {
        System.out.print("不能飞行( FlyNoWay)");
    }
    public void show() {
        System.out.println("黑白橡皮色");
    }
}

以下是simulator(模拟器(面向接口的类))代码:

public class simulator {//真正实现接口回调的模拟器
    DUCK duck;
    public void setDUCK(DUCK duck) {
        this.duck=duck;
    }
    public void play() {
        duck.voice();
        duck.fly();
        duck.show();
    }
}

Application代码(只用了MallardDuck的例子):

public class Application {
    public static void main(String args[]) {//主函数的调用
    simulator sim=new simulator();
    sim.setDUCK(new MallardDuck());
    sim.play();
    }
}

以下是运行结果截图:

技术分享图片

欢迎大家指正!

简单接口回调例子

标签:bst   lan   min   代码   info   转发   接口回调   技术   截图   

原文地址:https://www.cnblogs.com/majiasheng/p/10293633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!