Здравствуйте! Сегодня я расскажу вам о своем опыте написания проекта калькулятора комплексных чисел на языке Java с использованием принципов SOLID, а также добавлении логирования калькулятора.Сначала я хотел бы рассказать о принципах SOLID, которые я применял при создании проекта. SOLID — это аббревиатура, которая означает пять принципов объектно-ориентированного программирования⁚ Принцип единственной ответственности (Single Responsibility Principle), Принцип открытости/закрытости (Open-Closed Principle), Принцип подстановки Барбары Лисков (Liskov Substitution Principle), Принцип разделения интерфейса (Interface Segregation Principle) и Принцип инверсии зависимостей (Dependency Inversion Principle).Применяя эти принципы, я разбил проект на несколько классов. Первым классом был класс Complex для работы с комплексными числами. В нем я реализовал методы сложения, умножения и деления комплексных чисел; Затем я создал интерфейс Calculator, в котором объявил методы для выполнения арифметических операций с комплексными числами. Интерфейс позволил мне разделить ответственности между различными классами, соответствуя принципу единственной ответственности.
Далее я создал класс SimpleCalculator, который реализовал интерфейс Calculator и содержал в себе экземпляр класса Complex. В методах класса SimpleCalculator я вызывал соответствующие методы класса Complex, выполняющие арифметические операции. Таким образом, я обеспечил закрытость класса SimpleCalculator для модификации и открытость для расширения посредством принципа открытости/закрытости. Теперь перейдем к добавлению логирования калькулятора. Для этого я использовал библиотеку Log4j, которая предоставляет удобные средства для логирования в Java. Я добавил зависимость на Log4j в файле pom.xml проекта, а затем создал конфигурационный файл log4j.properties. В классе SimpleCalculator я добавил инстанс Logger из библиотеки Log4j и использовал его для логирования различных событий, таких как начало и окончание операции, а также результат операции. Я использовал разные уровни логирования в зависимости от важности события. Например, я использовал уровень DEBUG для логирования промежуточных результатов операций, а уровень INFO для логирования окончательного результата. Таким образом, я создал проект калькулятора комплексных чисел, применив принципы SOLID и добавив логирование. Это позволило упростить структуру проекта, разделить ответственность между классами, а также получить информацию о выполнении операций для отладки и анализа. Я с удовольствием поделился своим опытом и надеюсь, что эта информация будет полезна для вас при создании своих проектов. Спасибо за внимание!