2

我正在解决以下问题:

迭代器设计模式是一种具有强封装性的模式。举个例子; 图书馆需要图书管理系统。books 存储他们的详细信息的类和存储library书籍和书架号的类。假设图书馆希望使用JDBC.

如何使用 JDBC 实现迭代器设计模式以确保数据封装?

我关心的是在哪里处理数据库以及如何在应用程序之间共享数据。

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

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

4

1 回答 1

1

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

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.");
    }
}
于 2013-07-10T18:03:46.133 回答