使用空接口(interface)进行对象建模可以吗?
例如以下接口(interface)扩展了其他空接口(interface),以便表征对象“Ferry”:
public interface Ferry extends Watercraft, StationBased, Scheduled, Oneway, Motorized {}
Watercraft、StationBased 等也都是空接口(interface),因此它们起到了标记的作用。但是,JVM 或编译器不使用它们。这些类仅用于建模目的。 这是好的做法吗?接口(interface)通常不应该提供某种通用功能,而不仅仅是标记一个类吗?
最佳答案
是的,您可以使用空接口(interface)进行对象建模,但是......没有任何用例的对象建模在我看来是过度延伸。
您编写代码来执行具体操作,您对其进行建模以利用领域中的通用抽象,是的,您可以过度抽象您的代码。
在代码中添加接口(interface)是一种分类或典型化,只有当有接受者时才需要这样做。否则它就是普通的死代码。
我最糟糕的经历有时仍然在我的噩梦中困扰着我,那就是对业务服务的抽象,它本质上用一个单一的方法取代了它,该方法以映射作为参数并返回一个包含结果或错误状态的对象。有效地对方法调用进行建模,但这次没有类型。将这一点强加到所有业务方法上简直就是一场噩梦,稍后才解开。
关于java - 空接口(interface) - 对象关系建模,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24160416/