java - 空接口(interface) - 对象关系建模

标签 java oop interface

使用空接口(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/

相关文章:

java - JBoss EAP 7 中缺少 Jackson 依赖项

c++ - 多线程时一直调用对象析构函数,但对象没有超出范围

c - libcurl easy handle 'CURLOPT_RANGE' 选项不起作用

c# - 为什么要显式实现接口(interface)?

java - 从其他java类获取字符串

Java Kryonet 服务器,客户端未收到服务器响应

java - jdbc 不在类路径错误

java - 我如何引用它所扩展的类所引用的对象的[非抽象]字段?

database - 图数据库中的面向对象编程

php - 使用自定义对象创建接口(interface)函数