Учебный пример ООП13.09.2016, 11:26. Показов 9286. Ответов 123
Метки нет (Все метки)
Добрый день
Знакомство ООП часто начинается с этого примера. Ну не "строчка в строчку" (это я взял первый попавшийся в гугле), но те же классы и методы.
С уважением Игорь
0
|
||||||
| 13.09.2016, 11:26 | |
|
Ответы с готовыми решениями:
123
Не работает учебный пример с БД: "произошла ошибка, связанная с сетью или с определенным экземпляром" |
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 22.09.2016, 17:48 | ||
|
2. Это поворот на угол А. Согласитесь, что вторая формулировка удобнее и понятней. Вы поймёте её быстрее уже хотя бы потому, что это всего 3 слова, а не 30. Кроме этого, Вы получите дополнительный положительный эффект за счёт того, что больше кода будет умещаться на экране. Меньше придётся скролить, чтобы вспомнить, что было выше. Но, чтобы получить максимальную пользу от использования этих абстракций, нужно не только использовать их в коде, но и использовать их при составлении алгоритма. Кликните здесь для просмотра всего текста
Несколько лет тому назад я начал изучать F#, но месяца через два забросил. Я разобрался с синтаксисом и писал небольшие программы, но не видел никаких преимуществ использования F#, потому что, фактически, я придумывал решение задачи на C#, а затем в уме переводил его на F#. В таком использовании F#, действительно, мало смысла.
0
|
||
| 22.09.2016, 18:10 [ТС] | |||
Но по-моему это совершенно одинаково везде, не вижу здесь никакой связи с ФП или ООП
0
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||
| 22.09.2016, 18:29 | ||||
|
0
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 28.09.2016, 01:01 | ||
|
0
|
||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||||||
| 28.09.2016, 17:30 | |||||||
|
Я упоминал (на первой странице), но не привёл ещё один вариант. Он является развитием Варианта 2 (устраняет недостаток "пропадание" полиморфизма).
Вариант 3:
Чтобы не выбирать каждый раз для рисования правильный Рисователь, мы сохраняем ссылку на правильный Рисователь в самом классе Shape. Использовал Generic не обязательно, как и в Варианте 2. Но за счёт Generic мы получаем дополнительную надёжность: нельзя скомпилировать код, который для рисования Кругов будет пытаться использовать Рисователь Квадратов. Чтобы не указывать тип Рисователя везде в коде, где создаются наши объекты, придётся использовать шаблон Абстрактная Фабрика. Недостатком Варианта 3 является то, что мы связываем классы Фигура и Рисователь. Проявляется этот недостаток, когда наша программа состоит из нескольких независимых модулей. Даже те модули, которым никогда не нужно рисовать Фигуры, должны знать, что существует интерфейс Рисователь для рисования Фигур. Для устранения этого недостатка необходимо отделить Добавлено через 27 минут . Кроме того, примеры требуют использования стандартных функций, которых обычно нет в ООП языках (сами функции часто 1-2 строки, но пришлось бы объяснять их назначение). В общем, совсем коротко не получится.1. Функциональные языки обычно подходят лучше "Си-подобных" императивных языков для задач, где функции (в основном) вызываются ради получения результата, а не ради побочных эффектов. Это вычислительные ("математические") задачи, обработка данных, автоматы и т.п. Комбинируя базовые функции различными стандартными способами можно легко и прозрачно получать функции для решения нужной задачи (примерно как из стандартных логических блоков строится сеть для обработки данных). В качестве примера можно посмотреть, как с помощью комбинаторов строятся парсеры. 2. Также, в традиционных "бизнес-приложениях" АТД предпочтительней Классов, так как обеспечивают большую надёжность. Они позволяют многие бизнес-правила закладывать прямо в типы, то есть, код, нарушающий бизнес правила, даже не скомпилируется. з.ы. По прежнему не теряю надежды привести пару простых примеров - по одному на каждый из пунктов.
0
|
|||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 28.09.2016, 18:29 | |||||
|
Добавлено через 7 минут Добавлено через 4 минуты Добавлено через 3 минуты
0
|
|||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||
| 28.09.2016, 19:54 | ||||
|
(Тим Суини - программист-разработчик компьютерных игр, основатель компании Epic Games, создатель игрового движка Unreal Engine).
0
|
||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 28.09.2016, 20:50 | ||||
|
Добавлено через 6 минут На самом же деле как оказалось гораздо большую типобезопасность дает не запрет на смесь типов выражениях а определение алгебры над сущностями. к примеру вектор координата складывается только с ветором смещение а произведение вектора скорость на время дает смещение. Т.е. стандартная ООП-я перегрузка операторов. Добавлено через 6 минут
0
|
||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||||
| 29.09.2016, 08:03 | |||||
|
Какое отношение имеет PhysX к задаче, упомянутой Вами в предпоследнем сообщении? Есть там метод, в который можно передать 10 тыс объектов, которые могут измениться другим потоком? Или эта библиотека состоит из чистых (как в ФП) функций? Достоинство PhysX заключается в наличии низкоуровневого кода под множество разных архитектур, включая xbox и gpu. Причём тут ООП? Зачем Вы упоминаете разработчиков SolidWorks, если Вы не привели их мнение. То, что они пишут на C++, не означает, что они считают, что этот язык идеально подходит для данной задачи. Unreal Engine, кстати, написан на C++ и немного cg/hlsl. Вы, видимо, не поняли того, что я написал. Безопасность, о которой я писал, не имеет отношения к приведению типов. Я писал о том, что код, нарушающий "бизнес-правила", не компилируется. Например, есть правило "корзину нельзя оплатить, если в ней нет товаров". В C++ Вы добавите проверку и будете сообщать об ошибке во время исполнения. В F# Вы получите ошибку во время компиляции. То есть, код, оплачивающий пустую корзину, нельзя скомпилировать. Надёжность - это когда Вы добавили новую сущность или новое действие над ней, и компилятор выдал ошибки во всех местах, в которых надо внести изменения в связи с этим добавлением.
0
|
|||||
| 29.09.2016, 09:36 [ТС] | ||||||||
![]()
0
|
||||||||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||||||||||||
| 29.09.2016, 10:48 | ||||||||||||
0
|
||||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 30.09.2016, 00:23 | |||||||
|
Добавлено через 5 минут Добавлено через 39 минут Добавлено через 1 минуту Добавлено через 7 минут
0
|
|||||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||||||||||
| 30.09.2016, 03:53 | |||||||||||
|
Fulcrum_013 Вот тебе рантайм полиморфизм за пару минут на коленке:
Ну а вообще ты славно позоришься со своим "знанием" ФП по многим пунктам, отдаю должное.
0
|
|||||||||||
| 30.09.2016, 05:22 [ТС] | |||||||||
Вообще, не лучше ли настроиться более позитивно? Сказать "это все фигня, ООП рулит" (к чему сводятся Ваши посты) ума много не надо.
0
|
|||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 30.09.2016, 05:37 | ||||
|
Добавлено через 2 минуты
0
|
||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|||
| 30.09.2016, 05:58 | |||
|
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||
| 30.09.2016, 06:52 | |||||
|
Добавлено через 2 минуты Добавлено через 2 минуты Добавлено через 1 минуту
0
|
|||||
|
Игогошка!
1801 / 708 / 44
Регистрация: 19.08.2012
Сообщений: 1,367
|
|
| 30.09.2016, 14:16 | |
|
Fulcrum_013, ну да, прям конкретный-конкретный тип определяется в рантайме. А что это меняет? Я не понял, что ты сказать-то хотел?)
Fulcrum_013, ага, а наличие функций (особенно лямбда) в ооп-языках и const - о том, что ооп отстой. Чувствуешь, что ты чушь опять сказал? Fulcrum_013, да, прям заметно, что все свои фичи ФП приводит к ООП))) Настолько заметно, что всякие плюсы, джава,..., тащат в себя функциональные элементы.
0
|
|
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||||
| 30.09.2016, 15:23 | ||||
|
0
|
||||
| 30.09.2016, 15:23 | |
|
ООП пример Пример ООП на D
Нужен пример использования ООП Нужен пример с использованием ООП Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет!
За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки
Правым кликом по серверу -> отладочная информация -> edit
Заменить "net": "raw", на "net": "tcp",
Нажать кнопку reload.
|
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|