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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值