gpt4 book ai didi

java - 使用 JDBC 实现迭代器设计模式

转载 作者:搜寻专家 更新时间:2023-10-30 20:41:47 26 4
gpt4 key购买 nike

我正在解决以下问题:

The iterator design pattern is one that has strong encapsulation. As an example; a library wants a book management system. A class for the books storing their details and a class for the library storing the books and the shelf number. Lets say the library wants the data stored in a database using JDBC.

How can the Iterator design pattern be implemented using JDBC ensuring encapsulation of the data?

My concern is where the database is being handled and how the data is being shared across the application.

数据库处理程序可以是库类的内部类吗?是否可以在不影响封装的情况下保存数据并根据请求检索数据?

我还在学习,还有很长的路要走,所以要温柔:)

最佳答案

这是一个关于使用迭代器模式访问数据库的近似。

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.");
}
}

关于java - 使用 JDBC 实现迭代器设计模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16597279/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com