利用jdk1.8写个模板方法模式的例子

来源:互联网 发布:淘宝助手缓存清理 编辑:程序博客网 时间:2024/06/05 03:48

     jdk1.8的新特性之一是接口可以写默认实现方法。正好可以用在模板方法模式之上,之前一直使用抽象类来实现的。(该特性不仅限使用模板方法模式)。

1、car的类

package com.zc.jdk8;/** * Created by Administrator on 2017/5/17. */public interface Car {    /**     * Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法     */    default  void create(){        System.out.println("create wheel start !");        createWheel();        System.out.println("create wheel start !");        System.out.println("create engine start !");        createEngine();        System.out.println("create engine start !");        System.out.println("create frame start !");        createFrame();        System.out.println("create frame start !");     }    /**     * 造轮子     */    public void  createWheel();    /**     * 造发动机     */    public void createEngine();    /**     * 造车架子     */    public void  createFrame();}
2、测试main函数TestMain

package com.zc.jdk8;/** * Created by Administrator on 2017/5/17. */public class TestMain {    public static void main(String[] args) {        /**         * 创建个小轿车         */         Car  smallCar = new Car() {             @Override             public void createWheel() {                 System.out.println("create Wheel small Car......");             }             @Override             public void createEngine() {                 System.out.println("create Engine small Car......");             }             @Override             public void createFrame() {                 System.out.println("create Frame small Car......");             }         };         smallCar.create();        /**         * 造个大轿车         */        Car  bigCar = new Car() {            @Override            public void createWheel() {                System.out.println("create Wheel big Car......");            }            @Override            public void createEngine() {                System.out.println("create Engine big Car......");            }            @Override            public void createFrame() {                System.out.println("create Frame big Car......");            }        };        bigCar.create();    }}

上面创建了两个类型的车,一个小车、一个大卡车。

3、运行结果:


原创粉丝点击