Поиск
 
 

Результаты :
 


Rechercher Расширенный поиск

Кто сейчас на форуме
Сейчас посетителей на форуме: 1, из них зарегистрированных: 0, скрытых: 0 и гостей: 1

Нет

[ Посмотреть весь список ]


Больше всего посетителей (9) здесь было Вс Фев 11, 2018 12:54 pm
Самые активные пользователи за неделю
Ярослав
 


[П 140217] Домашние задания

Перейти вниз

[П 140217] Домашние задания

Сообщение автор Ярослав в Пн Май 14, 2018 11:50 am

Д/з №01 (14 мая 2018)
Принципы SOLID
Срок: по 20 мая

1. Надо напистаь программу, которая берёт байты из источника и складывает их в хранилище. Источники могут быть разными: например, ввод символов по одному с клавиатуры, чтение из файла, получение по сети. Хранилища тоже могут быть разными: запись в файл, печать на экран, отправка на принтер.

Программу надо сделать устойчивой к смене устройств ввода (источников) и устройств вывода (хранилищ). Возможно, в будущем будут появляться новые устройства ввода/вывода. Базовый алгоритм должен быть изолирован от этих изменений.

Реализовать работу программы с хотя бы двумя устройствами ввода (клавиатура, файл) и двумя устройствами вывода (экран, файл).

2. К проекту приложите диаграмму классов UML, показывающую устройство принятой вами архитектуры.
avatar
Ярослав
Admin

Posts : 641
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 140217] Домашние задания

Сообщение автор Ярослав в Ср Май 16, 2018 11:54 am

Д/з №02 (16 мая 2018)
Абстрактная фабрика
Срок: по 22 мая

1. Нашей компании нужно написать редактор текста, редактор изображений и редактор музыки. В трёх приложениях будет очень много общего: главное окно, панель инструментов, команды меню будут весьма схожими. Чтобы не писать повторяющуюся основу трижды, вам поручили разработать основу (каркас) приложения, которую можно использовать во всех трёх редакторах.

На совещании была принята следующая архитектура:

• Есть базовый интерфейс IDocument, представляющий документ неопределённого рода. От него впоследствии будут унаследованы конкретные документы: TextDocument, ImageDocument, MusicDocument... Интерфейс IDocument перечисляет общие свойства и операции для всех документов.

• При нажатии пукнтов меню File -> New и File -> Open требуется создать новый экземпляр документа (конкретного подкласса). Однако каркас не должен быть привязан ни к какому конкретному виду документов.

• Нужно создать фабричный интерфейс ICreateDocument. Этот интерфейс содержит два абстрактных фабричных метода: CreateNew и CreateOpen, оба возвращают экземпляр IDocument

• Каркас оперирует одним экземпляром IDocument и одним экземпляром ICreateDocument. Какие конкретные классы будут подставлены сюда, определяется во время запуска приложения.

Требуется: создать перечисленные классы. Создать каркас приложения — окно редактора с меню File. В меню File реализовать пункты New, Open, Save, Exit.

2. Продемонстрировать работу каркаса на примере текстового редактора. Потребуется создать конкретный унаследованный класс TextDocument и фабрику для него — CreateTextDocument.
avatar
Ярослав
Admin

Posts : 641
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 140217] Домашние задания

Сообщение автор Ярослав в Ср Май 23, 2018 12:03 pm

Д/з №04 (23 мая 2018)
Порождающие паттерны
Срок: по 29 мая

1. В «Героях меча и магии» армия состоит из 6 ячеек. В каждой ячейке находится один вид войск, описываемый названием, количеством единиц и силой в бою, например:

• Гоблины, 100 штук, слабые (1 урон)
• Орки, 20 штук, средние (5 урона)
• Дракон, 1 штука, сильный (25 урона)

Напишите класс, представляющий собой армию. Используйте паттерн Строитель, чтобы создавать экземпляры армий:

• Создаётся пустая армия
• Каждая ячейка заполняется отдельным вызовом функции
• Есть метод, завершающий изготовление армии
avatar
Ярослав
Admin

Posts : 641
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 140217] Домашние задания

Сообщение автор Ярослав в Пн Май 28, 2018 9:52 am

Д/з №05 (28 мая 2018)
Паттерн Адаптер
Срок: по 3 июня

1. В продолжение проекта с утройствами ввода и вывода (д/з №1). Нам поступил новый класс устройства ввода, возвращающий фискированную текстовую строку, зашитую в программе. Одна беда — у него несовместимый интерфейс. Нужно адаптировать его к имеющемуся проекту.

Напишите новый класс, у которого функция чтения байтов имеет подпись, несовместимую с интерфейсом устройства ввода (отличается тип возврата, название или аргументы). Этот класс всегда производит одну и ту же строку.

Напишите класс-переходник (адаптер), который подстраивает новый класс в уже имеющуюся инфраструктуру устройств ввода / вывода.
avatar
Ярослав
Admin

Posts : 641
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 140217] Домашние задания

Сообщение автор Ярослав в Вт Май 29, 2018 8:47 am

Д/з №06 (29 мая 2018)
Паттерн Decorator
Срок: по 4 июня

1. Написать декоратор для коллекции с интерфейсом IList<T>. Декоратор должен содержать ссылку на внутренний объект IList<T> и предоставлять доступ к её элементам, но в обратном порядке.
avatar
Ярослав
Admin

Posts : 641
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 140217] Домашние задания

Сообщение автор Ярослав в Ср Май 30, 2018 8:52 am

Д/з №07 (30 мая 2018)
Паттерн Фасад
Срок: по 5 июня

1. Один знаменитый блогер пишет сообщение и рассылает его по всем соцсетям. Соцсетей много: Facebook, Instagram, LiveJournal, VKontakte, Одноклассники и пр. Каждая соцсеть представлена отдельным классом, новое сообщение в ней можно написать, вызвав статический метод Post ():

Код:
// заголовок и текст сообщения
void Post (string title, string message);

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

Помогите блогеру упростить жизнь, используя паттерн Фасад.
avatar
Ярослав
Admin

Posts : 641
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 140217] Домашние задания

Сообщение автор Ярослав в Пн Июн 04, 2018 8:52 am

Д/з №09 (04 июня 2018)
Паттерны Interpreter
Срок: по 10 июня

1. Требуется доработать язык из паттерна Интерпретатор. Необходимо обеспечить обход дерева, распечатывая каждый посещённый элемент.
avatar
Ярослав
Admin

Posts : 641
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 140217] Домашние задания

Сообщение автор Ярослав в Вт Июн 05, 2018 11:58 am

Д/з №10 (05 июня 2018)
Паттерн Observer
Срок: по 11 июня

1. Написать приложение: кнопочный калькулятор. На нём расположено текстовое поле, отображающее число. Также имеется 10 кнопок с цифрами от 0 до 9. Текстовое поле не редактируемое: число можно вводить только нажатием кнопок.

Не используйте связывание данных (Binding): в этом примере делаем что-то подобное самостоятельно.

Используйте архитектуру с разделением представления (View) и модели (Model). Окно калькулятора — это представление. Представление знает о модели, но модель о нём даже не подозревает.

Модель состоит из целочисленного свойства Number и события NumberChanged. Каждый раз, когда Number меняется, должно наступать событие NumberChanged.

Представление подписывается на событие NumberChanged, чтобы всегда отображать самую новую информацию.
avatar
Ярослав
Admin

Posts : 641
Join date : 2016-12-21
Location : Москва

Посмотреть профиль http://itstep.forum2x2.ru

Вернуться к началу Перейти вниз

Re: [П 140217] Домашние задания

Сообщение автор Спонсируемый контент


Спонсируемый контент


Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения