有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在我的例子中,java正在努力决定singlemethod接口是否真的是一个好主意?

因此,我目前有一个接口Rentable,打算由任何需要可出租的对象实现,它有三种方法:

boolean isRented();

void rent();

void terminateRental();

问题是,在实现这个接口的类中,租入和终止租入实现对象的能力实际上应该是包私有的,尽管很明显,我在第一次编写类结构时并没有意识到这一点

一个单独的rental manager类提供了公共方法来租用一个Rentable,并将它与表示租用它的个人的另一个对象相关联,而这个类是唯一真正应该在Rentable对象本身中调用rentterminateRental方法的类。很明显,如果其他类可以公开操纵对象的租用状态,而不将其与租用对象解除关联,这就是一个问题

因此,接口的最后两个方法实际上应该是包私有的,因此显然它们需要从接口中出来,但接下来就是拥有接口:

public interface Rentable {

    boolean isRented();

}

。。。真的是个好主意还是好做法?我已经查找了单一方法接口,以及它们是好主意还是坏主意,但找不到与这种情况有多大关系。这对我来说似乎有点错误,尽管我认为它要求一个对象具有租用状态这一事实意味着需要编写更改它的方法,并且支持其他对象在将来成为Rentable对我来说可能是好的(目前它只是汽车,但可能租用其他类型的车辆或服务)。但我只是不确定这是一个多么好的做法,或者在这种情况下是否有其他选择,我没有看到


共 (1) 个答案

  1. # 1 楼答案

    单一方法接口没有本质上的错误(标准库中包含了一些,不管它们是否相关)。如果您需要实现向其客户保证的唯一一件事是能够与客户沟通是否租用,那么您建议的接口就可以了

    还要注意的是,接口不仅仅是它的方法:接口是真正的类型。如果您没有以这种方式使用此接口作为变量、方法参数和/或返回类型的声明类型或类型参数,那么您实际上并没有从中获得多少好处