我正在尝试设计将在内部用于我的应用程序的界面。效仿 Google 的例子,我努力减少公共 API 的混乱。但是,有一些便利方法是根据最小方法定义的。当我在方便和整洁之间寻求平衡时,我应该考虑哪些因素?
谷歌示例:在HashBiMap
(文档)中:
为什么 BiMap 没有 getKeyForValue() 方法?
我们确实考虑过(Doug Lea 甚至半开玩笑地建议将其命名为 teg()!)。但你并不真的需要它;只需调用 inverse().get()。
接口上的一个例子Set
:add()
andremove()
是最小的方法,而addAll()
andremoveAll()
是为了方便起见。addAll()
可以add()
根据Set
. 但它确实清理了客户端代码。
我考虑过创建一个Utility
包含更多便利方法的类。但是后来我离开了 OOP,我必须在每次调用中包含正在操作的对象作为参数。虽然我猜这遵循 JavaCollections
类的例子。