Разработка приложения с использованием паттерна Proxy



Написать два приложения с использованием сокетов: серверное и клиентское. Серверное приложение должно прослушивать порт 5000 и выполнять операцию умножения двух вещественных чисел для подключающихся клиентов. На клиенте разработать прокси-класс, содержащий метод для перемножения двух вещественных чисел, но не осуществляющий собственно перемножение, а отправляющий эти два числа в серверную часть (порт 5000) и возвращающий ответ сервера в качестве результата. Проиллюстрировать работу клиента в методе main().

Вопросы:

1. Группа, описание, назначение, область применения, особенности реализации и структурная схема паттерна Adapter.

2. Группа, описание, назначение, область применения, особенности реализации и структурная схема паттерна Bridge.

3. Группа, описание, назначение, область применения, особенности реализации и структурная схема паттерна Composite.

4. Группа, описание, назначение, область применения, особенности реализации и структурная схема паттерна Decorator.

5. Группа, описание, назначение, область применения, особенности реализации и структурная схема паттерна Façade.

6. Группа, описание, назначение, область применения, особенности реализации и структурная схема паттерна Flyweight.

7. Группа, описание, назначение, область применения, особенности реализации и структурная схема паттерна Proxy.


Лабораторная работа № 3. Образцы поведения.

Разработка приложения с использованием паттерна Chain of Responsibility

Реализовать паттерн Chain of Responsibility, обеспечивающий вывод полей объекта типа Pupil в текстовый файл в столбик или в одну строку. Для этого нужно разработать интерфейс Chain of Responsibility и два класса-наследника, каждый из которых осуществляет вывод соответствующим образом. В интерфейсе должен быть описан метод записи, в качестве параметра принимающий ученика, а также метод установки следующего в цепочке. Первая реализация этого интерфейса в цепочке выводит информацию в одну строку, если количество предметов меньше или равно 3. Вторая реализация в цепочке выводит информацию в столбик, если количество предметов больше 3.

Проверить работу паттерна в методе main().

Разработка приложения с использованием паттерна Command

Реализовать паттерн Command, обеспечивающий вывод полей объекта типа Student в текстовый файл в столбик или в одну строку. Для этого нужно разработать интерфейс Command и два класса-наследника, каждый из которых осуществляет печать соответствующим образом. В классе студент описать метод print(), которому в качестве параметра передавать поток, куда должна производиться печать. Метод должен обращаться к экземпляру класса, реализующего интерфейс команды (один из двух классов-наследников). Для задания команды добавить метод setPrintCommand() у класса Student.

Проверить работу паттерна в методе main().

Разработка приложения с использованием паттерна Iterator

Сделать класс Register в классе Schoolboy (или Schoolgirl) доступным на уровне пакета и статическим. Реализовать в нём метод toString(), возвращающий предмет и оценку.

Реализовать метод java.util.Iterator iterator() в классе Schoolboy (или Schoolgirl). Для этого следует описать некий дополнительный внутренний класс с некими соответствующими методами (SchoolboyIterator implements java.util.Iterator), экземпляр которого и будет возвращаться методом iterator().

Проверить работу итератора в методе main().

Разработка приложения с использованием паттерна Memento

Реализовать паттерн Memento, обеспечивающий сохранение текущего состояния объекта типа Student. Для этого нужно разработать соответствующий публичный статический внутренний класс, который будет сохранять состояние текущего объекта в сериализованном виде в массив байт (использовать класс ByteArrayOutputStream) и затем считывать сохраненное состояние. Соответствующие методы назвать setStudent() и getStudent(). В классе Student описать методы createMemento() и setMemento(), которые будут обращаться к соответствующим методам класса Memento. Проверить работу паттерна в методе main().


Дата добавления: 2019-02-26; просмотров: 209; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!