我正在解决以下问题:
迭代器设计模式是一种具有强封装性的模式。举个例子; 图书馆需要图书管理系统。
book
s 存储他们的详细信息的类和存储library
书籍和书架号的类。假设图书馆希望使用JDBC
.如何使用 JDBC 实现迭代器设计模式以确保数据封装?
我关心的是在哪里处理数据库以及如何在应用程序之间共享数据。
数据库处理程序可以是库类的内部类吗?那么是否可以在不影响封装的情况下保存数据并根据请求检索数据?
我还在学习,还有很长的路要走,所以要温柔:)
我正在解决以下问题:
迭代器设计模式是一种具有强封装性的模式。举个例子; 图书馆需要图书管理系统。
book
s 存储他们的详细信息的类和存储library
书籍和书架号的类。假设图书馆希望使用JDBC
.如何使用 JDBC 实现迭代器设计模式以确保数据封装?
我关心的是在哪里处理数据库以及如何在应用程序之间共享数据。
数据库处理程序可以是库类的内部类吗?那么是否可以在不影响封装的情况下保存数据并根据请求检索数据?
我还在学习,还有很长的路要走,所以要温柔:)
这是关于使用迭代器模式访问数据库的近似值。
package tk.ezequielantunez.stackoverflow.examples;
import java.util.Collection;
import java.util.Iterator;
/**
* Paged implementatios of a DAO. Iterator interface is used.
* Nottice you get pages of Collections, where resides your data.
* @author Ezequiel
*/
public class DAOIterator implements Iterator<Collection> {
int actualPage;
int pageSize;
public DAOIterator(int pageSize) {
this.actualPage = 0;
this.pageSize = pageSize;
}
/**
* Indicates if you have more pages of datga.
*/
@Override
public boolean hasNext() {
return actualPage < getTotalPages();
}
/**
* Gets the next page of data.
*/
@Override
public Collection next() {
return getPage(++actualPage);
}
@Override
public void remove() {
throw new UnsupportedOperationException("Not supported yet.");
}
/**
* Calculates total number of pages.
*/
private int getTotalPages() {
/* You could do a count of total results and divide them by pageSize */
throw new UnsupportedOperationException("Not supported yet.");
}
/**
* Get a page of results with X objects, where X is the pageSize used in
* constructor.
*/
private Collection getPage(int page) {
/* Get data from database here */
throw new UnsupportedOperationException("Not supported yet.");
}
}