Как вызвать событие изменения jQuery в коде

Я хочу иметь интерфейс хранилища (абстрактный класс) и набор реализаций хранилища (SQLite, MySQL, Memcached ..) для хранения объектов известного класса и получения подмножеств из хранилища.
Для меня понятный интерфейс будет выглядеть так:

class Storable{int id; blah; blah; blah; string type;};
class Storage{
    virtual Storage::iterator get_subset_of_type(string type) = 0;
    virtual Storage::iterator end)_ = 0;
    virtual void add_storable(Storable storable) = 0;
};

А затем создать реализации хранилища, которые соответствуют интерфейсу. Теперь моя проблема заключается в следующем:

  • Итераторы не могут быть полиморфными, поскольку они возвращаются по значению.
  • Я не могу просто создать подкласс Storage :: iterator для моей данной реализации Storage
  • Я думал о наличии итератор-оболочка, который обертывает полиморфный тип, являющийся подклассом реализаций хранилища, и выполняет его надстройку, но тогда мне нужно использовать динамическую память и распределять ее повсюду.

Есть подсказки?

5
задан Arkaitz Jimenez 22 November 2010 в 15:55
поделиться