Калькулятор с плагинами: часть 2

Улучшаю модульный калькулятор.

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

Самое основное изменение заключается в том, что я изменил интерфейс Operation, который реализует плагины/модули нашего калькулятора. Теперь он выглядит вот так:

Обратите внимание, что метод calculate теперь принимает в качестве параметра экземпляр класса CalculatorState, а не просто два числа. Класс CalculatorState описывает состояние калькулятора и позволяет более тонко контролировать вычислительные операции:

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

Архитектура, конечно, выглядит всё ещё довольно сыро и топорно, но основной идеей создания этого калькулятора была идея изучения Jigsaw и модулей в Java 9, так что конечной цели  я всё-таки достиг.

Модуль со стандартными плагинами теперь обеспечивает пять реализаций интерфейса Operation, которые перечислены в provides файла «module-info.java» через запятую:

Текущую реализацию можно посмотреть в репозитории на GitHub с тегом step2.

Не знаю, стоит ли продолжать развивать этот проект. Конечной цели он уже достиг, похоже.

Следующим логическим шагом будет, похоже, написание обучающей статьи по проекту Jigsaw.


Поделиться:

Добавить комментарий

Ваш e-mail не будет опубликован.

*