【发布时间】:2016-08-08 20:56:42
【问题描述】:
我有一个 Java 问题,但我不知道如何正确实现这些方法。我不太擅长建筑。
数据管理器接口类:
public interface DataManager {
public void readData();
public void writeData();
}
数据抽象类:
public abstract class Data implements DataManager {
@Override
public void readData() {};
@Override
public void writeData() {};
}
数据阅读器类:
public class DataReader extends Data {
// I want to implement the readData() here
}
数据写入器类:
public class DataWriter extends Data {
// I want to implement the writeData() here
}
如果我想在两个不同的类中分别实现 readData() 和 writeData() ,只有一个接口,可以吗?我不知道我为什么要这样做。当我向 reader 或 writer 类添加更多方法时,它可能看起来更干净、更容易。我应该在一个类中实现所有内容吗?
我希望这个库允许使用管理器对象的用户访问数据读写。但是对于实现,我不知道如何正确地做到这一点。
【问题讨论】:
-
任何实现
DataManager的类必须实现这两种方法。你可以有一个空的实现(比如在你的抽象类中),但如果你打算单独实现它们,最好将它分成两个接口。 -
替代@resueman 的评论,您可以使用组合而不是继承来执行此操作。在这种情况下,您将拥有一个
DataManager类,它将DataReader和DataWriter类作为构造函数参数,并将实现传递给它们。我认为这可能接近您的目标? -
@resueman 谢谢,所以听起来我可以选择创建两个接口或在一个类中实现 DataManager。
-
@EdwardPeters 谢谢,我不确定我是否理解。你的意思是像 DataManager(DataReader 阅读器,DataWriter 作家)?所以在 DataReader 中有 readData(),在 DataWriter 中有 writeData()。然后 manager 将拥有这两个对象,以便使用它调用 read 和 write 方法。
-
@CaoFelix 这个想法是
DataManager类中的read和write方法将是调用DataReader和DataWriter对象的非常小的“包装”方法通过了。这意味着,如果您有一组不同的 Writer 和一组不同的 Reader,您可以轻松地从它们的任意组合中创建一个 Manager。
标签: java