Skip to content

Stanislav-Berezovsky/BSU.ASP.1501.Day6.Berezovsky

Repository files navigation

Задание 1.

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

• AddBook (добавить книгу, если такой книги нет, в противном случае выбросить исключение);

• RemoveBook (удалить книгу, если она есть, в противном случае выбросить исключение);

• FindByTag(найти книгу по заданному критерию);

• SortBooksByTag (отсортировать список книг по заданному критерию). Для работы с файлами использовать только классы BinaryReader, BinaryWriter.

  1. Реализовать возможность логирования сообщений различного уровня. (https://github.com/NLog/NLog/wiki)

  2. Работу классов продемонстрировать на примере консольного приложения.

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

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages