Форум программистов, компьютерный форум, киберфорум
ООП и паттерны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.74/35: Рейтинг темы: голосов - 35, средняя оценка - 4.74
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886

Объектно-ориентированное проектирование и дизайн приложений: взаимодействие, модели, системы, архитектура

21.12.2015, 06:52. Показов 8680. Ответов 125
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В общем, дело такое. В ООП ничего не понимаю. Нужны некоторые уточнения парадигмы. Предполагается чистый C++ (без boost, stl и подобного).

Для примера: создание класса "журнал оценок". Двойки в который в детстве ставили многим.
1. Должен ли класс внутри себя хранить массив ФИО, Даты? Или не должен.
2. Не очень понятно как связать оценки, если должен.

Я так понимаю, что класс все-таки должен хранить внутри себя массивы. Но это использовать неудобно, местами вообще непонятно (вопрос пересечений ФИО и Даты для получения оценки). Как это может стать удобным мой мозг догадываться наотрез отказался, уперся в то, что массивы надо создавать вне класса и обрабатывать их вне класса, а класс должен содержать только единичные значения. Это, с единичными значениями и внешними массивами, может и удобно, но так не получается такой объект, который как бы заимствован из нашего мира и спроецирован в мир приложения, а, значит, такое ООП - не ООП.

Помощь нужна. Я именно в теории нуждаюсь. Примеры, конечно, тоже могут стать полезны, только сложных не надо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.12.2015, 06:52
Ответы с готовыми решениями:

объектно-ориентированный анализ,объектно-ориентированное проектирование
Прошу помочь построить диаграмму прециндентов и диаграмму классов,мне необходимо только начало диаграммы или хотя-бы какой-нибудь пример с...

Буч, Гради. Объектно-ориентированное проектирование с примерами на С++
Тoвaрищи! Мoжет есть у кoгo в электрoннoм виде? В Сети нaшел мoре вaриaнтoв, нo oни все либo битые, либo нa newmail! :) A тaк...

Объектно-ориентированный анализ и проектирование с примерами приложений
Стоит ли её читать, а то пролистал в середине кодов никаких нет один текст + немного картинок как из газеты? Добавлено через 41 минуту...

125
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
19.01.2016, 20:22
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от daslex Посмотреть сообщение
Вы дочитали вообще? У нас есть отличие. Там где у меня отчутствие записи в принципе, там у Вас присутствие записи с обозначением.
Не вижу такого, где у меня нужно лишнее хранить?
Если желаете хранить "справки" - пожалуйста.
Code
1
2
//Permitted skip <StudentId> <LectureId> <DateFrom> <DateTo> 
PS 1 1 192023 13123
Цитата Сообщение от daslex Посмотреть сообщение
Минус где 'Н'. Если вдруг обязали 'Н' обозначать как 'О'(отсутствие). Надо проконопатить весь журнал.
больше минусов я сказать не могу.
Если этих обязывающих мёдом не корми только дай в файлах поковыряться вместо использования софтины - то нафиг им софтина не нужна, пусть сами пишут файл и ковыряются в нём.
А в софтине вы им отсутствие нарисуете хоть на китайском - 缺席
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
19.01.2016, 20:27  [ТС]
Ну, Вы просто не понимаете о чем я.
У Физрука журнал. В нем есть Петя, Вася, Катя
У Географа журнал того же класса того же года. Но у него в журнале есть только Петя, Катя, Дима.

У физрука нет записи о Диме вообще.
У географа нет записи о Васе

==========
В Вашем случае записи есть.
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
19.01.2016, 20:41
Цитата Сообщение от daslex Посмотреть сообщение
Ну, Вы просто не понимаете о чем я.
У Физрука журнал. В нем есть Петя, Вася, Катя
У Географа журнал того же класса того же года. Но у него в журнале есть только Петя, Катя, Дима.
У физрука нет записи о Диме вообще.
У географа нет записи о Васе
Ах, совсем забываю об этом современном платном необязательном образовании.

Собственно в моём варианте - запись означает что оценка проставлена, если записи нет - значит оценка не проставлена.

И добавьте сами тип записи для такого поведения. У вас получится, я не сомневаюсь.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
19.01.2016, 20:45  [ТС]
Так-то замечательная подсказка. Не надо думать, что я что-то плохое в ней увидел.

Добавлено через 3 минуты
Почему сразу платном.
Дима астматик с рождения. Его не вписывают в журнал по физре.
Вася географию по программе не проходит (набожная семья, верит в плоскость планеты).
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
19.01.2016, 20:53
Цитата Сообщение от daslex Посмотреть сообщение
Так-то замечательная подсказка. Не надо думать, что я что-то плохое в ней увидел.
Всё окей, я просто устал уже

Просто выберите вариант данных который вас устроит. Меня бы устроили справки которые я привёл.

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
Вася географию по программе не проходит (набожная семья, верит в плоскость планеты).
Вася принёс справку от ктулху и его отпустили с географии, поскольку у школы нет денег, чтобы выпустить для васи иначе спроеированный атлас :) - нормально чё, в саус парке и не такое бывает :)

0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
19.01.2016, 21:02
Цитата Сообщение от daslex Посмотреть сообщение
Вася географию по программе не проходит (набожная семья, верит в плоскость планеты).
Это же не важно. Главное же что с Катей всё в порядке. Вера в плоскостопие - отдельная тема.
Создайте словарь: id , { Имя, Отчество, Фамилия, контейнер использования}. Контейнер хранит ссылки на места, где используют данный id. Журнал там зарегистрируется. В числе многих. Журналов в том числе.
Иначе один толстый журнал получается. Толстый - ключ.
А ведь всё начиналось так хорошо:
Цитата Сообщение от TC
Пишу экспертную систему. В искусственном интеллекте не рублю. Обдумывал, обдумывал и выдумал. На свою голову. По всем признакам продукт получается умнее меня. Как реализовать? Стал много читать и есть. Ума прибавилось, но снова незадача. Пока бежал к клавиатуре реализовывать, придумал ещё умнее.
Нет в жизни счастья.
1
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
19.01.2016, 21:10  [ТС]
Мало что понял. Но сейчас у меня шланг заработал, а это означает, что пора кодить.

Модель есть.
Структура хранения есть. (Пока что просто файл).

Я еще потом сюда все равно заходить буду.
Но сейчас есть с чем работать. И это замечательно.

Цитата Сообщение от IGPIGP Посмотреть сообщение
Сообщение от TC
Я такого не писал
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
19.01.2016, 21:38
Цитата Сообщение от daslex Посмотреть сообщение
Я такого не писал
Это вариация на тему. Плод коллективного разума. Воплощённого в ООПще.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
20.01.2016, 10:12  [ТС]
Nosey, Файл мне мало подходит. Я же моделирую поведение. Дело не просто в журнале, а во взаимодействии.

Можно представить такую ситуацию, где профессор берет журнал с полки. Пока идет урок, журнала нет на полке. Пока шел урок, декан факультета хотел взять журнал. Он хотел взять его на полке, но журнал был занят и на полке его, соответственно, не было.

Добавлено через 8 часов 29 минут
Меняю мнение. Вполне подходит. Провоцирует планировку новой системы. Это своеобразная сложность. Мне так-то понятно.
.....................
Тему можно переименовать в: "Дизайн проектирования. Взаимодействия. Модели, системы, архитектура программ."

Насчет советов не страдать, а кодить.
Хоть убейте, но система взаимодействия Журнала и обьектов не какой-то глобальный проект, хотя по некоторым советам я мог бы об этом начать думать. Сколько можно говорить, что это сложно. Учебный вариант не представляет особой сложности если человек умеет мыслить.

Разве это не нормально разделить какую-то систему на такие ее составные части.
1. Общий план вообще всего проекта (то, о чем мне писали, чтобы я вообще не думал, а сосредоточился на более мелких частях). Общий план - это модель в виде схем или диаграмм, uml это или салфетки роли вообще не играет.
Если система действительно громоздкая и достаточна глобальна, то тут вопросов быть не может. Кусочек взял, кусочек сделал.
2. Выцепить из общего плана наиболее важные моменты. В моем случае таким моментом стала подсистема, определяющая внедренцев. Также распланировал общий план и многие вопросы сами собой отпали.
3. Кодинг.
4. Я пока еще не дошел.

Таковы мои промежуточные выводы. Пока что я на стадии кодинга.

Добавлено через 3 минуты
Меняю мнение. Вполне подходит. Провоцирует планировку новой системы. Это своеобразная сложность. Мне так-то понятно.
.....................
Тему можно переименовать в: "Дизайн проектирования. Взаимодействия. Модели, системы, архитектура программ."

Насчет советов не страдать, а кодить.
Хоть убейте, но система взаимодействия Журнала и обьектов не какой-то глобальный проект, хотя по некоторым советам я мог бы об этом начать думать. Сколько можно говорить, что это сложно. Учебный вариант не представляет особой сложности если человек умеет мыслить.

Разве это не нормально разделить какую-то систему на такие ее составные части.
1. Общий план вообще всего проекта (то, о чем мне писали, чтобы я вообще не думал, а сосредоточился на более мелких частях). Общий план - это модель в виде схем или диаграмм, uml это или салфетки роли вообще не играет.
Если система действительно громоздкая и достаточна глобальна, то тут вопросов быть не может. Кусочек взял, кусочек сделал.
2. Выцепить из общего плана наиболее важные моменты. В моем случае таким моментом стала подсистема, определяющая внедренцев. Также распланировал общий план и многие вопросы сами собой отпали.
3. Кодинг.
4. Я пока еще не дошел.

Таковы мои промежуточные выводы. Пока что я на стадии кодинга.
1
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9007 / 4708 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
20.01.2016, 11:02
Цитата Сообщение от daslex Посмотреть сообщение
1. Общий план вообще всего проекта (то, о чем мне писали, чтобы я вообще не думал, а сосредоточился на более мелких частях). Общий план - это модель в виде схем или диаграмм, uml это или салфетки роли вообще не играет.
Умные мысли:
Цитата Сообщение от преподобный Программуальд Кодус Копипастис:
Нужно любить uml в себе, а не себя в uml.
Цитата Сообщение от Наставления по боевому программированию:
У штурмового кодера есть только два союзника: инт, дабл... и флоат!
1
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
20.01.2016, 14:39
Цитата Сообщение от daslex Посмотреть сообщение
Тему можно переименовать в: "Дизайн проектирования. Взаимодействия. Модели, системы, архитектура программ."
daslex, может лучше так: Объектно-ориентированное проектирование и дизайн (обсуждение) ?
1
20.01.2016, 14:48

Не по теме:

gru74ik, а еще лучше: "помагите, поставили двойку в журнал - как хакнуть журнал и базу на С++"

0
20.01.2016, 20:29

Не по теме:

rikimaru2013, Это рабочее название, мы же о релизе уже думаем :)

0
20.01.2016, 20:31

Не по теме:

Nosey, "Как хакнуть журнал училки за 21 день".

Не благодари!

0
20.01.2016, 20:49

Не по теме:

Цитата Сообщение от rikimaru2013 Посмотреть сообщение
Nosey, "Как хакнуть журнал училки за 21 день".
Установить зависимости и связи в сущности "Журнал "Плейбой"", выделить и исследовать взаимодействие плейбоя с журналом. Допустить возможность сериализации в файл.
Моё мнение. :scratch:

0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
21.01.2016, 00:19  [ТС]
Я тут немного накодил. Не в С++, правда, но это не важно.

В общем. Наотрез отказываюсь от садизма. Не тот случай, где стоит набивать шишки.
Файл использовать можно, но это катастрофически неразумно.

Базы данных однозначно. Если кто-то это отрицает, то это печально.
Шишки все равно будут. Но БД удобнее. Хотя описание таблицы в файл - по мне весьма интересный способ увидеть важные взаимосвязи разных таблиц. (учиться их видеть).

Гораздо проще описать запрос выборки, чем регулярное выражение парсинга текста на сущности. Поскольку запрос читабельнее, то и корректировать его должно быть легче, наверное. Я имел небольшой опыт с запросами. Регулярки же удобны, но все-таки трудно читаются (с ними опыта не имел).
Без БД придется писать интерфейс добавления, редактирования, удаления. Рост веса структуры в файле провоцирует сложность поддержки такого интерфейса.

БД удобнее файлов постольку, поскольку при переходах на другие языки, в конечном итоге намного меньше проблем. А я ориентируюсь не только на C++. Во многих языках можно работать с БД одинаково, ибо БД она и есть БД, но гораздо реже можно одинаково работать с файловой системой и файлами. Это я по своему скромному опыту имел возможность пронаблюдать.


Так что сейчас если кто-то хочет дать рекомандации, то я бы посмотрел на рекомендации работы с БД в С++

Mr.X, , я знаю, Вы мне сразу сказали об этом. Но сам по себе этот путь, который пока что мною проделан бесполезным в принципе быть не может.




PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
{STATE_JOURNAR}
SJ 0
 
{STATE_PROCESS}
SP 0
 
{DATE}
DT 1 2001
DT 2 2002
DT 3 2003
DT 4 2004
DT 5 2005 
 
{STUDENT}
ST 1 {Ivanov  Ivan} {18.08.1980}
ST 2 {Sidorov Petr} {12.07.1979}
ST 3 {Petrov Fedor} {13.09.1981}
 
{LESSON}
LS 1 GEOGRAPHY
LS 2 ARIPHMETICS
LS 3 RUSSIAN
 
{THEMAS}
TH 1 1 {"Золотые ископаемые"} 
TH 2 1 {"Обитатели подводного мира"}
TH 3 1 {"Живая природа"}
TH 4 2 {"Иррациональные числа"}
TH 5 3 {"Глаголы русского языка"}
TH 6 1 {"Австралия"}
 
{GRADE}
GR ............
 
//На самом деле тут существует проблема, хотя бы в том, что такая структура вынуждает хранит 
//все даты, чтобы ориентироваться когда, по какому предмету и какая проходилась тема.
//Любое нововведение в структуру файла влечет некоторые проблемы
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
21.01.2016, 06:30
Цитата Сообщение от daslex Посмотреть сообщение
Хотя описание таблицы в файл - по мне весьма интересный способ увидеть важные взаимосвязи разных таблиц. (учиться их видеть).
У СУБД есть инструменты для просмотра схем данных (если сами схемы, конечно, есть).

Цитата Сообщение от daslex Посмотреть сообщение
Гораздо проще описать запрос выборки, чем регулярное выражение парсинга текста на сущности.
Было допущено две ошибки:
1. Был придуман свой формат хранения структурированных данных.
2. Для его разбора были использованы регулярки.

Можно было бы хранить данные в csv, json, xml или в чем-нибудь еще — трудозатрат на разбор стало бы меньше. Что само по себе, естественно, не делает набор обычных файлов полноценной БД со всеми вытекающими.

Цитата Сообщение от daslex Посмотреть сообщение
Так что сейчас если кто-то хочет дать рекомандации, то я бы посмотрел на рекомендации работы с БД в С++
Определиться с базой, выбрать библиотеку: Awesome C/C++: Database.
0
21.01.2016, 06:32

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
я ориентируюсь не только на C++
Значит, время переезжать в другой раздел.

0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
21.01.2016, 10:20  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
Было допущено две ошибки:
1. Был придуман свой формат хранения структурированных данных.
2. Для его разбора были использованы регулярки.
Это сообщение в мой адрес?
Я обдумал и понял и сам пишу, что свой формат - садизм по отношению к себе.

Кем допущены? Мною такие варианты были обдуманы, хотя мне и писали: "хватит думать", но не проделаны. Под кодингом я имел ввиду кодирование своего формата хранения. Это же тоже подвид кодинга.
________________

Цитата Сообщение от gru74ik Посмотреть сообщение
Значит, время переезжать в другой раздел.
Делать на С++ и ориентироваться на что-то - это очень разные ситуации.
Я делаю на С++, а опыт изучения других языков говорит в пользу чего делать выбор. Это могут быть БД и могут быть готовые форматы (json,csv,xml). Хотя у меня есть один вопрос относительно готовых форматов и бд, только здесь ему точно не место.

Мой маленький, живущий своей жизнью мир будет написан на С++ и работать в маленьком консольном окошке. (если у меня получится, конечно довести его до ума). Не торопитесь с выводами, друг мой.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
21.01.2016, 11:54
Цитата Сообщение от daslex Посмотреть сообщение
Не торопитесь с выводами, друг мой.
Зря перенёс в ООП?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2016, 11:54

Архитектура и проектирование приложения: ищу видео, статьи и книги с примерами реальных маленьких приложений
Пытаюсь написать для себя приложение для складского учёта на связке C# + SQLite + Dapper + WinForms. Хочется аналога вот этого, только с...

Гради Буч: "Объектно-ориентированный анализ и проектирование с примерами приложений"
Доброго времени суток, господа. В одной компании, куда я хотел пойти на курсы по java, посоветовали почитать сию книгу. Я нашёл, что она...

Как происходит взаимодействие приложений с реализацией модели OSI?
Преподаватель дал такой вопрос, перерыл и гугл, и литературу, ничего похожего не нашёл. Помогите, пожалуйста, ответить на этот вопрос. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
120
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru