Skip to content

vhatsura/BSU.ASP.1501.Day6.Gatsura

Repository files navigation

BSU.ASP.1501.Day6.Gatsura

####Задание 1.

  1. Для выполнения основных операций с коллекцией книг, который можно загрузить (и, если возникнет необходимость, сохранить) из некоторого хранилища (например, двоичный файл) разработать класс BookListService (как сервис для работы с коллекцией книг) с функциональностью:
  • AddBook (добавить книгу, если такой книги нет, в противном случае выбросить исключение);
  • RemoveBook (удалить книгу, если она есть, в противном случае выбросить исключение);
  • FindByTag(найти книгу по заданному критерию);
  • SortBooksByTag (отсортировать список книг по заданному критерию).

Для работы с файлами использовать только классы BinaryReader, BinaryWriter.

  • Реализовать возможность логирования сообщений различного уровня с помощью NLog
  • Работу классов продемонстрировать на примере консольного приложения.

####Задание 2.

Выполнить рефакторинг класса (с целью сокращения повторного кода) с алгоритмами Евклида (для рефакторинга использовать делегаты, рефакторинг возможен только в случае, когда все методы находятся в одном классе!). Интерфейс класса измениться не должен.

####Задание 3.

В класс с алгоритмом сортировки непрямоугольной матрицы (заменить пользовательский интерфейс на IComparer!) добавить метод, принимающий как параметр делегат, инкапсулирующий логику сравнения строк матрицы. Протестировать работу разработанного метода на примере сортировки матрицы, используя прежние критерии сравнения.

Класс реализовать двумя способами, «замкнув» в первом варианте реализацию метода сортировки с делегатом на метод с интерфейсом, во втором – наоборот.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages