ImmutableSet实现了Set接口.对a无意义的函数ImmutableSet现在称为"可选操作" Set.我假设这样的情况.所以ImmutableSet现在抛出UnsupportedOperationException许多可选操作.
这似乎是我的倒退.我被告知接口是一个契约,因此您可以在不同的实现中使用强制功能.可选操作的方法似乎从根本上改变(矛盾?)接口的意图.今天实现这一点我将Set接口分为两个接口:一个用于不可变操作,另一个用于扩展这些操作用于mutator.(很快,脱掉袖口解决方案)
我知道技术会发生变化.我不是说它应该以某种方式完成.我的问题是,这种变化是否反映了Java的一些基本理念的变化?让事情向后兼容只是更多的乐队吗?我对Interfaces的理解不完整吗?