对象关系的java空接口建模
使用空接口进行对象建模可以吗
例如,以下接口扩展了其他空接口,以便描述对象“Ferry”:
public interface Ferry extends Watercraft, StationBased, Scheduled, Oneway, Motorized {}
船艇,基于站点的,等等,也都是空接口,所以它们有点像一个标记。但是,JVM或编译器不使用它们。这些类仅用于建模目的。 这是好的做法吗?接口是否应该通常不提供某种公共功能,而不仅仅是标记一个类
# 1 楼答案
这样做没有什么错,只是您可能会很快发现更改结构或添加新表单会变得不愉快
我可能会考虑一个更灵活的^ {CD1>}选项。
对于
Set
的并集和交集,您可以做很多有益的事情,这有助于生成强大但清晰的代码# 2 楼答案
是的,您可以使用空接口进行对象建模,但是。。。没有任何用例的对象建模是对它的过度扩展
您编写代码来执行具体的操作,对其进行建模以利用域中的一般抽象,是的,您可以过度抽象代码
在代码中添加接口是一种分类或类型化,只有在有一个接受者的情况下才有必要这样做。否则它就是死代码
在我的噩梦中,我最糟糕的遭遇有时仍然萦绕在我心头,那就是对业务服务的抽象,它基本上用一个方法取代了它,该方法将一个映射作为参数,并返回一个包含结果或错误状态的对象。有效地建模方法调用,但这次没有类型。在所有的业务方法上强制这样做只是一场噩梦,以后要解开