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

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

21.12.2015, 06:52. Показов 8677. Ответов 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
21.01.2016, 12:20  [ТС]
Студворк — интернет-сервис помощи студентам

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
Зря перенёс в ООП?
Нет. С этим всё нормально. Я не обратил внимание куда ушла тема. Прочитал то сообщение именно как сообщение: "собирай чемоданы и выметайся в другие разделы".


Такой вот выверт. Извиняюсь. Я всего-лишь неправильно понял те слова.

0
21.01.2016, 12:30

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
Прочитал то сообщение именно как сообщение: "собирай чемоданы и выметайся в другие разделы".
Я бы такого себе никогда не позволил. По отношению к тебе уж точно.

0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
21.01.2016, 12:58
Цитата Сообщение от daslex Посмотреть сообщение
Базы данных однозначно.
Уверены?
База данных это универсальность и горстка утилит. И именно утилиты главное в этом понятии. Без утилит boost::serialization будет такой же базой данных, разве что работющей быстрее ). И не забывайте что написал Kastaneda.
Так вот, нужны ли вам утилиты?

Цитата Сообщение от daslex Посмотреть сообщение
Гораздо проще описать запрос выборки, чем регулярное выражение парсинга текста на сущности.
Не нужны тут регулярные выражения. Мной предложенный формат прост как бревно, стар как фикалии мамонта, с ним работали даже в критичных местах в те времена когда регулярки не были написаны на каждом заборе. Сам С++ использует у оператора >> по дефолту разделителем пробел, чувствуете?

Цитата Сообщение от daslex Посмотреть сообщение
Рост веса структуры в файле провоцирует сложность поддержки такого интерфейса.
Не понимаю что это такое, если вы о сложности разработки, то тогда обратите внимание на С# там из коробки есть кодогенераторы для Web Servic'а, как сервера так и клиента. В других понятиях, этаже проблема присуща и другим технологиям.

Цитата Сообщение от daslex Посмотреть сообщение
БД удобнее файлов постольку, поскольку при переходах на другие языки, в конечном итоге намного меньше проблем.
Это так, да, универсальность.
Но у вас проект горит или вы учитесь? Я считал что второе.

Цитата Сообщение от daslex Посмотреть сообщение
ST 1 {Ivanov Ivan} {18.08.1980}
Откуда в формате фигурные скобки? Зачем они? Вы пытаетесь оправдать использование регулярок?

Теперь почему я предложил именно такой формат, а не другой какой-то:
1) Обучение.
2) csv - Это одно и тоже собственно, разве что разделитель поменять.
xml, json - избыточны для данного случая и все библиотеки скрывают реализацию(см пункт 1), и (см пункт 3).
3) Предложенный формат отлично переносится в будущем как на реляционные БД, так и в бинарный формат. В отличии от xml json позволяющие использовать вложенные структуры, которые точно будут поюзаны если будут доступны, лень штука такая)).

Собственно третий вариант самый важный.
Итого: Лёгкость в реализации, отладке, лёгкость в переносе на другой формат или реляционную БД и опыт в велиспедопарсинге, как архитектурном, так и в реализации.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
21.01.2016, 14:31  [ТС]
Цитата Сообщение от Nosey Посмотреть сообщение
Но у вас проект горит или вы учитесь? Я считал что второе.
Я учусь.
Из-за того, что я свою учебу начал далеко не вчера, то у меня есть вполне состоявшееся мнение такого вот вида:
Лучше один раз научиться, чем миллион раз переучиваться.
Везде ли есть boost?
Базы данных везде где я был.
Как представлены файлы - прямая зависимость от системы. (это я к переучиванию), хотя тоже были везде где я был.

Цитата Сообщение от Nosey Посмотреть сообщение
Откуда в формате фигурные скобки? Зачем они? Вы пытаетесь оправдать использование регулярок?
Нет. Это временное явление. Но где строки с пробелами, я бы убирать фигурные скобки или подобие их точно не стал За регулярки я не цеплялся ни разу. Журнал, который описали мне в указанном посте как отдельный набор классов, пишется от 5 до 30 минут (в виде ничего толком не умеющей сущности), даже если учитывать что кто-то может отвлекать. Чтобы с ним работать, он должен быть заполнен. Чтобы он был заполнен, надо его кому-то заполнить. Кому его заполнять? Конечно мне. Тот указанный пост к этому отношения вообще не имеет. Существует слишком много форматов хранения, чтобы вообще без опыта ориентироваться с выбором формата хранения данных.

Вы советуете одно, другие другое, третьи пишут третье.
Я пока ни с чем не знаком. Пытаюсь, конечно, осилить. Смотрю одно, второе. Но пока что мне только общее описание только встречается.
_____________
На некоторые вопросы ответить пока не готов. Глупо спорить о чем-то, не имея ни малейшего представления этого. Я исходил из того, что уже где-то видел.

Добавлено через 46 секунд
Строки с пробелами как в темах'
0
 Аватар для Nosey
1379 / 406 / 144
Регистрация: 22.10.2014
Сообщений: 872
21.01.2016, 15:00
Цитата Сообщение от daslex Посмотреть сообщение
Лучше один раз научиться, чем миллион раз переучиваться.
Ах, этот дивный идеальный мир

Цитата Сообщение от daslex Посмотреть сообщение
Везде ли есть boost?
Базы данных везде где я был.
Согласен и не согласен одновременно, иногда бывают ситуации, но очень редко всё-таки. boost это просто код, ограничения для его не использования это просто галочка в голове. Но тут и буст тоже "не нужен", он приведён как пример.

Цитата Сообщение от daslex Посмотреть сообщение
Но где строки с пробелами, я бы убирать фигурные скобки или подобие их точно не стал
Тут сделайте в формате так чтобы строки с пробелами были только по одной на сущность и были последними. т.е. признак окончания будет - перенос строки, либо же binary style - предварительное указание длины строки.
Да и время лучше хранить в unixTime.

Цитата Сообщение от daslex Посмотреть сообщение
Журнал, который описали мне в указанном посте как отдельный набор классов, пишется от 5 до 30 минут (в виде ничего толком не умеющей сущности), даже если учитывать что кто-то может отвлекать. Чтобы с ним работать, он должен быть заполнен. Чтобы он был заполнен, надо его кому-то заполнить. Кому его заполнять? Конечно мне. Тот указанный пост к этому отношения вообще не имеет
Извиняюсь, я не указал что ссылался на вторую часть сообщения, о том что БД не панацея, в том числе по производительности.

Я особенно против базы в данном случае поскольку мы в теме ООП, и за интерфейсом
C++
1
IJournalData getJournal();
Пару интересностей таки скроется, их стоит реализовать.

Цитата Сообщение от daslex Посмотреть сообщение
Пытаюсь, конечно, осилить. Смотрю одно, второе. Но пока что мне только общее описание только встречается.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
21.01.2016, 15:56  [ТС]
Цитата Сообщение от Nosey Посмотреть сообщение
Ах, этот дивный идеальный мир
Вы скорее всего не так поняли. Под следующей цитатой маленькое пояснение.

Цитата Сообщение от Nosey Посмотреть сообщение
Сам С++ использует у оператора >> по дефолту разделителем пробел
Я об этом знаю. Но такая фишка далеко не во всех языках. Во многих придется бить по разделителю. И пробел это или любой другой разделяющий символ роли вообще не играет. Можно научится >>, а потом переучиться бить по разделителю, а можно сразу по разделителю.

Я ведь с ориентацией на гибкость в плане кочевания с языка на язык осматриваю проект. Вы этому противствуете, но мой выбор основан на более общем подходе к написанию кода, чем на возможностях языка ради самого языка. В большой степени Ваши советы исходят из этого момента. Я так понял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.01.2016, 15:56

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

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

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


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

Или воспользуйтесь поиском по форуму:
126
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
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