利用jdk1.8的新特性实现模板方法模式

来源:互联网 发布:大连网络建站 编辑:程序博客网 时间:2024/06/05 22:29

      jdk1.8的新特性中有一个是接口可以编写默认方法。这样写模板方法模式就很好的被利用到(不仅限模板方法使用)。

1、模板类

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函数方法类

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();    }}

上面创建了个两个车,一个小车,一个大车,构建实现方式具体暴露出来。

原创粉丝点击