【Java8新特性】Java 8 接口之 default method

来源:互联网 发布:淘宝店的店铺介绍 编辑:程序博客网 时间:2024/06/05 14:49
interface Idemo {     default void demo(){         System.out.println("demo");     }}

1. 擴展既有代碼

在這一新特性出現之前,如果我們要擴展既有代碼,給某一個接口增加新方法,就會帶來一個問題,即其實現類無新增接口之實現,編譯便不會通過。

2. 面向組合

當我們遇到這樣的業務邏輯,即多個功能的不同組合,原來我的做法就是用設計模式(Decorate Pattern)來解決,現在我們有了default method,則我們多了另一種選擇。

interface IIcecream {}interface IBerryIcecream{     default bool addBerry(){   }}interface IAppleIcecream{     default bool addApple(){    }}interface IOrangeIcecream{      default bool addOrange(){     }}////////////////////////////////////////class AppleOrangeIcecream implements IIcecream, IAppleIcecream, IOrangeIcecream{}class OrangeBerryIcecream implements IIcecream, IBerryIcecream, IOrangeIcecream{}


0 0
原创粉丝点击