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

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

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

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

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

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

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

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

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

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

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

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

Ваш адрес email не будет опубликован.