Skip to content

Files

Latest commit

37242cb · Mar 14, 2023

History

History
197 lines (150 loc) · 9.48 KB

README.md

File metadata and controls

197 lines (150 loc) · 9.48 KB

Work 02 включает в себя:


Unit01:

Урок 1. Принципы ООП: Инкапсуляция, наследование, полиморфизм

  1. Реализовать, с учетом ооп подхода, приложение Для проведения исследований с генеалогическим древом. Идея: описать некоторое количество компонент, например:

    • модель человека
    • компонента хранения связей и отношений между людьми: родитель, ребёнок - классика, но можно подумать и про разные отношения
    • компонент для проведения исследований
    • дополнительные компоненты, например отвечающие за вывод данных в консоль, загрузку и сохранения в файл,

    получение\построение отдельных моделей человека. Под “проведением исследования” можно понимать получение всех детей выбранного человека.

    • на первом этапе сложно применять сразу все концепты ООП, упор делается на инкапсуляцию. Если получится продумать иерархию каких-то компонент - здорово. После первой лекции, они не знают про абстракцию и интерфейсы

    Продумать какие проблемы могут возникнуть в том, коде, который они написали. Например, с генеалогическим древом, мы можем знать о двух людях, но не знаем в каких “отношениях” они были - двоюродные или троюродные, или мы точно знаем как звали прапрабабушку, но совершенно не знаем прабабушку - как хранить такие связи или что будет если в компоненту обхода передать ссылку на null-дерево.

Структура и главный исполнительный файл (MainUnit01 - запускаем его):

MainUnit01.java

          |__
             |Unit01
                    |__
                       | Main.java
                       | Node.java
                       | Person.java
                       | Relationship.java
                       | Research.java
                       | Tree.java

Воспользуйтесь этим, для перехода:

MainUnit01.java || Unit01 ||->( Main.java -> Node.java -> Person.java -> Relationship.java -> Research.java -> Tree.java)


Unit02:

Урок 2. Принципы ООП Абстракция и интерфейсы. Пример проектирования.

  1. Используйте предыдущие задачи из прошлого домашнего задания. Необходимо гарантированно продумать иерархию компоненты и взаимодействия их между собой. Обеспечить переход от использования явных классов в сторону использования абстрактных типов.

    Т.е. работаем не с:

    • конкретным экземпляром генеалогического древа, а с интерфейсом “генеалогическое древо”

    Под исследованием передачу конкретного экземпляра класса узла и отношения

    • Передать узел (сына) и найти его отца
    • Передать узел (дедушка) и найти его внуков

    Продумать возможность ухода от конкретных "котиков", к интерфейсу “котик”, лучше уйти от взаимодействия:

    • с конкретными питомцами и повысить уровень абстракции до взаимодействия с котиком, собачкой или хомяком т.е. с интерфейсом “животное”.

Структура и главный исполнительный файл (MainUnit02 - запускаем его и выбираем в меню 2 задачу):

MainUnit02.java

          |__
             |Unit02
                    |__
                       | Main.java
                       | Call.java
                       | Cat.java
                       | Node.java
                       | Person.java
                       | Relationship.java
                       | Research.java
                       | Tree.java

Воспользуйтесь этим, для перехода:

MainUnit02.java || Unit02 ||->( Main.java -> Call.java -> Cat.java -> Node.java -> Person.java -> Relationship.java -> Research.java -> Tree.java)


Unit03:

Урок 3. Некоторые стандартные интерфейсы Java и примеры их использования

  1. Проделать код ревью своих работ. Продумать, какие компоненты можно и нужно переписать.

Структура и главный исполнительный файл (MainUnit03 - запускаем его и выбираем в меню 1 задачу):

MainUnit03.java

          |__
             |Unit03
                    |__
                       | Main.java
                       | Call.java
                       | Cat.java
                       | Node.java
                       | Person.java
                       | Printer.java
                       | Relationship.java
                       | Research.java
                       | Tree.java

Воспользуйтесь этим, для перехода:

MainUnit03.java || Unit03 ||->( Main.java -> Call.java -> Cat.java -> Node.java -> Person.java -> Printer.java -> Relationship.java -> Research.java -> Tree.java)


Unit04:

Урок 4. ООП: Обобщения. ч1

  1. С учетом информации полученной ранее знакомимся с параметрическим полиморфизмом и продолжаем погружаться в ООП. Спроектировать и реализовать планировщик дел для работы с задачами разных приоритетов.

    Например:

    • определить уровень приоритетов: низкий, средний, немедленное выполнение;
    • выделить компоненту для хранения данных;
    • выделить компоненту для организации импорта\экспорта данных.

    Файл должен содержать следующие данные:

    • id;
    • дату добавления записи;
    • время добавления записи;
    • дедлай задачи;
    • ФИО автора;
    • данные хранятся в файле csv/jsom/xml
    • другие компоненты.

Структура и главный исполнительный файл (MainUnit04 - запускаем его и выбираем в меню 1 задачу):

MainUnit04.java

          |__
             |Unit04
                    |__
                       |Data
                       |    |__
                       |       | planer.csv
                       |
                       | Main.java
                       | AddTask.java
                       | PrintPlaner.java
                       | PrintTaskInPlaner.java
                       | Talking.java

Воспользуйтесь этим, для перехода:

MainUnit04.java || Unit04 ||->Data |-> (planer.csv) || -> (Main.java -> AddTask.java -> PrintPlaner.java -> PrintTaskInPlaner.java -> Talking.java)