我想为不同的数据库XML,Sql和实现创建接口。我有一个界面,但它对xml有好处,但对于其他界面?我想从这个界面创建jar libary。我还有一个POJO类Book,它代表数据库中的对象。我将有两个实现,一个用于XML,一个用于sql,如何在没有编译的情况下从propeties文件中设置一个?
interface DataInterface {
public void setBook(ArrayList<Book> book);
public ArrayList<Book> getBook();
public void update(ArrayList<Book> book, int row, int col);
public void read();
public void add(Book book);
}
答案 0 :(得分:0)
您可以创建2个类XmlDataInterface
和SqlDataInterface
,这两个类都实现了您的指定接口DataInterface
。
现在,无论您想要访问哪个界面,都可以引用DataInterface
,并访问上述所有方法。这样,使用DataInterface
的代码仍然不知道实现细节。
当您实例化它时,棘手的部分就会出现。 :)
您可以拥有your_file_name.properties
这样的文件,并且有类似
DataInterfaceImplementationType = XML(OR SQL)
存储在其中。
您可以轻松地将其作为键值对进行访问(有关详细信息,请参阅java.util.Properties)。
现在唯一剩下的就是实际的实例化,它应该类似于
DataInterface dataInterface; // Declare as a member.
// Use it everywhere freely without worrying.
// In maybe a constructor put following.
String dataInterfaceImplementationValue;
// Code to read properties file and get value of dataInterfaceImplementationValue.
if (dataInterfaceImplementationValue.equals("XML")) {
dataInterface = new XmlDataInterface();
} else if (dataInterfaceImplementationValue.equals("SQL") {
dataInterface = new SqlDataInterface();
} else {
System.out.println("Invalid property set: " + dataInterfaceImplementationValue);
}
希望这有帮助。