美文网首页
提示二十一

提示二十一

作者: 飞絮搅青冥 | 来源:发表于2022-06-20 23:18 被阅读0次

今天来看提示二十一:为后代设计接口。

在java8之前,如果想要为一个接口添加新的方法,那么所有的实现类都要去实现新方法,即破坏了原有的实现。java8 新增的缺省方法,可以为新加的方法提供默认实现,从而不需要在每个实现类都实现新的方法。

Java 类库的默认方法是高质量的通用实现,在大多数情况下,它们工作正常。 但是,并非每一个可能的实现的所有变体,始终都可以编写出一个缺省方法。比如Java8中的SynchronizedCollection如果不自己覆盖实现removeIf,那缺省方法在多线程时不同步就可能会报错或其他数据异常情况。

在有默认方法出现的时候,接口之前存在的实现可能可以通过编译,但是可能在运行时失败。

尽量避免利用缺省方法在现有接口上添加新的方法。

这一章比较简单,主要是其中关于removeIf方法的讨论。默认方法可能并不能使用于所有子类,导致一些子类必须要重写这个方法,否则调用就会产生问题。我的思考还是如果我们能够提前预见到这个默认方法并不适合所有子类,是否还需要提供这个缺省方法,让所有子类都去自己实现,这样会更加繁琐,但是能减少错误发生的概率。或者在进一步,接口中是否需要提供这个方法,干脆就让需要用的子类自己去实现这个方法。比如collection接口中就不要removeIf这个钩子,如果子类是用数组实现的,有优化的空间,可以自己实现这个方法,或者如果没有需求,就不提供这个方法。不过站在工具类的角度,可能还是现在的这种实现更加友好?

相关文章

  • 提示二十一

    今天来看提示二十一:为后代设计接口。 在java8之前,如果想要为一个接口添加新的方法,那么所有的实现类都要去实现...

  • 温馨提示(二十一)

    1、吝啬,索取而不回馈,得到而不付出,最后一定会走向孤独。 2、甲之蜂蜜,乙之砒霜。 3、锻炼口才最好从大声朗读做...

  • 11.25写给女儿|435|消息两则

    这是凌晨三点二十一收到的短信: 【**市疫情防控办】温馨提示:**镇居民您好!因24日一名阳性对象在辖区有活动轨迹...

  • 武术五大流派: 少林、武当、峨眉、昆仑、崆峒五派

    门道提示:农历四月二十一 少林、武当、峨眉、昆仑、崆峒五大派内部,又有许多支派,各支派中某一套路如有显著特色,又可...

  • 【云南】毛月亮(21)

    连载二十一 说个中国媳妇 上一篇:好吃的臭豆腐加了蘑菇 前情提示:在抚仙湖畔的农家乐,尼克终于和王屿重逢。去...

  • 【职场理想国4号征文】于红梅的三八畅想曲

    今天是正月二十一了,于红梅看了眼手机,上面提示是三八女王节。 “唉,过的太快了!” 她自己叨叨着,一轱辘,从婆婆家...

  • 理发

    今天是腊月二十一,某宝提示我应该理头发了。在家多日的我,用手揪了几下较为任性的头发,便出门向理发店走去。...

  • 春分贴

    失眠。窗外雨声骤然。打开手机,显示:三月二十一日,零时三十三分。手机屏幕有特别提示:春分。(一潲夜雨,春已过半,余...

  • 冬日随笔

    都说养成习惯的时间是二十一天,今天看了一下系统,提示我已经连续更文二十六天了。每天到了这个时候就会自己打开...

  • 门道文化|墨绿玉:白绿原色,洁白如暇

    门道提示: 农历九月二十一 墨绿玉又称黑绿玉,原生色只有白和绿,洁白如暇,可与羊脂玉相媲美;晶莹翠绿,敢与翡翠争雄...

网友评论

      本文标题:提示二十一

      本文链接:https://www.haomeiwen.com/subject/aqrsvrtx.html