Удача - Популярные видеослоты на Андроид – игровая индустрия прогрессирует все дальше и дальше, но это не выталкивает игровые автоматы, которые популярны и сейчас, хотя и появились в далеком 19 веке.

Приятный плюс данного приложения в том, что вы можете участвовать в игре, не вкладывая никаких денежных средств и не испытывать риска.

Задача игры базируется на том, что вы просто нажимаете на кнопку «SPIN» в правом углу, и надеяться на удачу, что выпадет комбинация из одинаковых символов, цифр, которые принесут вам победу.

Комбинации в игре самые разнообразные, но самые знаменитые, как знают все, набор трех вишенок и заветных трех семерок. Вы не сможете оказать влияние на ход игры, вам нужно лишь ожидать, когда барабан автомата остановится и покажет вам ваш результат.

Придя в большой проект, использующий в качествe графического интерфейса Swing, я понял, что разобраться в логике и связах между компонентами JDialog или JFrame довольно таки не просто.

И всё то время, что я разбирался с этим кодом я пытался найти какое-то универсальное решение, которое бы позволило избежать сложности связей между элементами интерфейса.

Основная проблема, с которой я сталкивался: каждый элемент имеет один или более Property Change Listener, которые в зависимости от ситуации (читай от состояния других элементов), каким-либо образом влияют на другие элементы.

Те элементы в свою очередь тоже имеют свои Property Change Listener, которые тоже в зависимости от контекста влияют на другие.

Понять, как нажатие кнопки повлияет на все остальные элементы, было иногда очень не просто, а уж найти кусок кода, где это происходит, тем более.

Также это усложняло изменение зависимостей (чтобы изменить логическое правило, приходилось искать все связи в разных местах на разных компонетах, и скорее всего что-то было упущено) и дебаггинг.

В такой ситуации мог бы помочь паттерн Медиатор, но опять же проследить все связи и логику взаимодествия всё также будет сложно.

Если JDialog и так несложный, то разбивать будет не на что.

Пришла мне в голову идея о том, что JDialog всегда находится в строго определенных состояниях в определенный момент времени.

К примеру, диалог создался, он в состояние «я только что создался», затем пользователь или сама логика программы переводит диалог в состояние «я обрабатываю», если пользователь во время «я обрабатываю» нажал на кнопку отменить, то диалог переходит в состояние «я был прерван». В каждый отдельный момент времени мы можем сосредоточиться на отрисовке одного логического состояния.

И, следовательно, весь код, отвечающий за состояние элементов, будет в одном, логическом и физическом месте.