社区
非技术版
帖子详情
建议新开一个版,专门讨论关于Office VBA编程的,同意者顶
polestarxu
2006-11-25 07:33:11
建议新开一个版,专门讨论关于Office VBA编程的,同意者顶
...全文
119
2
打赏
收藏
建议新开一个版,专门讨论关于Office VBA编程的,同意者顶
建议新开一个版,专门讨论关于Office VBA编程的,同意者顶
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
圣殿骑士18
2006-11-26
打赏
举报
回复
已经有了
http://community.csdn.net/Expert/ForumList.asp?typenum=1&roomid=1704
polestarxu
2006-11-25
打赏
举报
回复
自己顶一下,呵呵
《Effective Java》解读第21条:为后代设计接口
摘要: 接口设计需具备前瞻性,因其发布后难以修改。Java 8的默认方法虽缓解了接口演进的兼容性问题,但需谨慎使用:应作为后期修正工具而非初始设计手段,避免多重继承冲突。核心
建议
包括:优先通过抽象骨架类(如AbstractList)提供基础实现,减少实现负担;默认方法需确保安全、高效且逻辑合理;设计时假设接口不可更改,严格规划方法。最终目标是构建稳定且可扩展的接口,平衡灵活性与兼容性。
《Effective Java》第21条:为后代设计接口
这是缺省方法的好处之一,但是,给现有的接口添加新方法还是充满风险的,因为实现该接口的类并不知道接口中已经增加了
一个
缺省方法,也没有经过实现类的许可,虽然这样可能不会导致什么问题,但是是
一个
隐患。5. 为了避免发生这种异常,维护人员必须要覆盖默认的 removeIf 实现,以及一些类似于 removeIf 的其他方法,以便在调用缺省实现之前执行必要的同步。默认方法是 “通用” 的,但集合的实现是多样的 —— 有些实现有特殊逻辑(比如同步、并发控制、自定义迭代规则),默认方法没法兼顾所有变体。
Chapter-4-Item-21-为后代设计接口
默认方法的声明包括
一个
默认实现,所有实现接口但不实现默认方法的类都使用这个默认实现。默认方法被「注入」到现有的实现中,而无需实现者的知情或
同意
。返回的包私有类)中发生这种情况,JDK 维护人员必须覆盖默认的 removeIf 实现和其他类似的方法,以便在调用默认实现之前执行必要的同步。在有默认方法的情况下,接口的现有实现可以在没有错误或警告的情况下通过编译,但是在运行时出错。这是为 removeIf 方法编写的最好的通用实现,但遗憾的是,它在实际使用的一些 Collection 实现中导致了问题。
【笔记21】为后代设计接口
在 Java 8 之前,不可能在不破坏现有实现的情况下为接口添加方法。 如果向接口添加了
一个
新方法,现有的实现通常会缺少该方法,从而导致编译时错误。 在 Java 8 中,添加了默认方法(default method)构造[JLS 9.4],目的是允许将方法添加到现有的接口。 但是增加新的方法到现有的接口是充满风险的。 默认方法的声明包含
一个
默认实现,该方法允许实现接口的类直接...
第21项:为“后代”设计接口(design interface for posterity)
在Java 8之前,不可能在不破坏现有实现的情况下向接口添加方法。如果你向接口添加了新方法,现有的【接口实现类】通常会缺少该方法【的实现】,从而导致编译时错误。在Java 8中,添加了默认方法构造[JLS 9.4],目的是允许向现有接口添加方法。但是在现有接口中添加新的方法充满了风险。 默认方法的声明包括
一个
默认实现,该实现由实现该接口但未实现默认方法的所有类使用。 虽然向Java添加默认...
非技术版
401
社区成员
11,494
社区内容
发帖
与我相关
我的任务
非技术版
PowerBuilder 非技术版
复制链接
扫一扫
分享
社区描述
PowerBuilder 非技术版
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章