我对接口(interface)编程还很陌生,我正在努力将其作为开发测试驱动的主要工具。
目前我们有很多管理器类都实现了一个CRUD
接口(interface)。然而,有些管理器还没有更新,有些还没有删除,有些可能永远不会这样做。
未实现异常?
可以吗,只是
throw new NotImplementedException()
直到该方法被实现,或者如果它永远不会实现,甚至永远?
(显然有源代码注释告诉程序员“不应使用此方法,例如‘男性’‘女性’等类型永远不会被删除)?
split ?
或者我应该将我的 CRUD 界面拆分为可创建、可读(可搜索)、可更新和可删除?这不会扰乱我的类定义吗?
PersonManager implements Creatable<Person>, Updateable<Person>, Deletable<Person>, Searchable<Person>
拆分和合并?
或者我应该将一些接口(interface)(如所有 4 个接口(interface))组合到 CRUD 中,也许还有一些其他组合,如读取 + 更新?
也许这还会产生一大堆接口(interface),其中必须单击一个大的继承路径才能找出哪个接口(interface)实现了当前情况所需的所有原子接口(interface)(我需要读取和创建,所以哪个只实现了两个?这很快就会变得复杂得多)
最佳答案
IMO,对于中间阶段 - 可以使用 NotImplementedException
,直到您完成实现。
但是,作为永久解决方案 - 我认为这是一种不好的做法 [在大多数情况下]。
相反,我会创建一个接口(interface),其中包含所有 实现类共有的行为,并使用子接口(interface)将它们聚集起来以获得更具体的行为。
思路类似于java标准 SortedSet
,它扩展了 Set
- 我们不想将 Set
视为 SortedSet
并为这种类型的变量赋予 HashSet
值,而是为此,我们使用子接口(interface) SortedSet
。
关于java - 接口(interface),如果不是所有实现都使用所有方法怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10224440/