Skip to content

nobleess/hw1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ООП

Условие задачи:

Реализуйте систему для управления и отправки сообщений в мессенджере. В мессенджере существует несколько типов сообщений: текстовые, мультимедийные и системные уведомления. Каждый тип сообщения имеет как уникальные свойства, так и одинаковое поведение

Ваша задача — реализовать структуры сообщений с использованием таких концепций ООП, как интерфейсы, встраивание типов, модификаторы доступа, приведение типов.

Детали реализации логики должны быть скрыты от ее потребителя и доступны через отдельное API (методы/функции)

Требования:

  1. Типы сообщений

    • Текстовые
      • Текстовое сообщение от {{логин отправителя}} отправлено в {{время отправления}}: {{текст сообщения}}
      • Отправляется конкретному пользователю
    • Мультимедийные
      • Мультимедийное сообщение от {{логин отправителя}} отправлено в {{время отправления}}: [{{тип медиа}}] {{URL медиа}}
      • Типы медиа: аудио, видео
      • Отправляется конкретному пользователю
    • Системные
      • Системное уведомление отправлено в {{время отправления}}: {{текст сообщения}}
      • Отправляется всем пользователям в системе
    • У каждого сообщения есть свой идентификатор
  2. Создать структуру пользователя, у которого имеется логин и список сообщений

    • В системе будет храниться единый список пользователей
    • Все изменения сообщений должны происходить
  3. Создать сервис Отправитель сообщений, в котором будет хранится список пользователей

    • Добавить ему метод отправки сообщений, который принимает сообщения
    • В зависимости от типа сообщения (см. выше) сервис будет добавлять его одному или нескольким пользователям в системе
  4. Создать сервис Редактор сообщений, в котором будет хранится список пользователей

    • Реализовать метод редактирования сообщения, который редактирует существующее в системе сообщение у пользователя
    • Редактировать можно текстовые значения сообщений (системные и тестовые сообщения) или урл медиа (менять тип медиа нельзя)
  5. Создать сервис Принтер сообщений, который печатает сообщения (формат см. выше) для каждого пользователя

    • Печать должна осуществляться во все, куда можно писать данные (терминал, файл, ...)
  6. Структура

    • Вся логика должна находится в internal
    • Демонстрация всех сценариев использования в точке входа в приложение
    • Сущности должны располагаться отдельно от логики сервисов
  7. Добавление новых типов сообщений должно минимально затрагивать код сервисов

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages