В моем приложении все выполняемые операции находятся на выбранном в данный момент объекте, что заставляет меня думать, что шаблон государственного образца лучше всего подходит. Однако все объекты, которые выбираются один за другим, по существу одинаковы, поэтому в каждом состоянии действительно нет разницы, за исключением того, что элемент просто другой.Является ли шаблон прокси или государственного образца или, возможно, шаблон итератора более подходящим в этом случае?
Моя ситуация очень похожа на структуру каталогов. У меня есть коллекция папок, где каждая папка может иметь разные файлы, но она по-прежнему является папкой. Независимо от выбранной папки пользователь может видеть только содержимое этой папки или добавлять файлы. Моя программа также выполняет итераторы через все папки (предполагают один уровень) и показывает содержимое всех файлов в папке.
Я смущен, как мне сохранить текущее состояние (= текущая выбранная папка) в моем приложении?
надстроек
Что же смущает меня это следующее состояние логика которого я не знаю, где она принадлежит. Пожалуйста, предположите, что я работаю со специальными папками My Documents
, My Pictures
и My Music
. Логика перехода (для простоты) заключается в том, что если пользователь добавляет 10 файлов в любую из этих папок или общий размер каждой папки превышает 10 МБ, он должен перейти к следующей папке. Кроме того, приложение должно сначала показать My Documents
, чем переход на My Pictures
, а затем переход на My Music
. Вот почему я думал об этом как о состоянии, так как каждая папка должна знать, в какую папку она должна будет перейти.
Уверен, звучит для меня, как будто «итератор» является более подходящей абстракцией здесь. –
@JerryCoffin Я добавил дополнительную информацию, вы думаете, что «итератор» - еще более подходящий шаблон? спасибо – zar
Может быть больше вопросов, но не очень много. Итератор обычно представляет некоторое состояние (текущую позицию) вместе с чем-то, что определяет «следующую позицию», а также способность определять, когда итерация должна прекратиться. Я ничего здесь не вижу, что отходит от этой базовой модели поведения. –