|
шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
|
SOLID принципы23.01.2017, 17:55. Показов 17516. Ответов 359
Метки нет (Все метки)
всего 5 принципов:
1) srp - класс должен описывать только те характеристики, которые на объект из предметной области возложены. То есть либо кот, либо пес, котопес быть не может. 2) ocp - Писать надо классы так, чтобы их можно было легко расширить, но не изменять 3) Лисков - ??? 4) делайте много маленьких интерфейсов, один дольшой интерфейс это плохо. Так как рефакторинг усложняется... 5) Инверсия зависимостей. Типо композицию поменяйте на агрегацию Я не понимаю принцип Лисков. Можете объяснить популярно?
0
|
|
| 23.01.2017, 17:55 | |
|
Ответы с готовыми решениями:
359
Нелогичные принципы программирования SOLID Нарушен ли solid ? |
| 29.01.2017, 11:48 | ||
|
0
|
||
|
Заблокирован
|
|
| 29.01.2017, 12:29 | |
|
Igor3D, мотивы могут быть в том, что затраченные усилия и время служат инвестициями в будущее, например, Вы не будете решать задачу так, как решил бы ее Вася Пупкин, стандартно, идиоматично Вашему языку и шаблонам принятым в нем, а найдете стократно более эффективное решение.
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 29.01.2017, 14:36 | ||
|
В этой главе авторы знакомят читателя с основными понятиями - функции, списки, потоки, объекты и т.д. (поэтому списки оказались рядом с потоками). Подробно эти понятия объясняются в последующих главах. В частности concurrency посвящено три главы (4, 5 и 8). В этой книге нет примеров на псвдокоде. Все примеры там на языке Oz. Вы можете запустить их, например, в ideone. Насчёт "зачем" (если Вам интересно) прочитайте Предисловие.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||
| 30.01.2017, 16:49 | |||
|
который на чистой сишечке велосипедят ооп - только в путь. Добавлено через 10 минут инъекция - одна из реализаций инверсии))
0
|
|||
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
||
| 30.01.2017, 16:57 | ||
|
Для ООП нужно наследование. Нельзя имитировать наследование на чистой сишечке.
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||
| 30.01.2017, 17:06 | ||
|
оо-программирование, это программирование с применением оо-парадигмы. собственно, это - единственное требование. на сишке ничего не мешает проэмулировать и наследование, и полиморф. а вообще, сама по себе оо-парадигма основана на процедурной парадигме. без процедурщины ооп просто не может существовать. это же такая банальщина и очевидность
0
|
||
|
шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
|
| 30.01.2017, 17:22 [ТС] | |
|
Ооп это типо ии.
0
|
|
|
Модератор
3141 / 2289 / 469
Регистрация: 26.03.2015
Сообщений: 8,920
|
|||
| 30.01.2017, 19:23 | |||
|
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 30.01.2017, 21:35 | ||
|
0
|
||
|
шарпопочитатель
59 / 26 / 7
Регистрация: 31.01.2010
Сообщений: 1,035
|
|
| 30.01.2017, 21:38 [ТС] | |
|
На си пишет линус торвольдс например. И многие линуксоиды, они ваще сипипи не уважают. Гип глейд делает. А ядре линукса дофига гоуту.. вот так
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|||||||||||||||||||
| 30.01.2017, 22:09 | |||||||||||||||||||
|
всё то, что оо-язык предоставляет из коробки, благодаря технологиям компиляторов, в сишке велосипедируется вручную. тоже наследование - при помощи макросов. синтаксически это конечно отличается от дизайна какого нибудь с++, но смысл тот же. вообще, ключевая мысль: оо-парадигма базируется на процедурной парадигме. любой оо-код можно представить в виде процедурной парадигмы. а вот наоборот - нельзя. без процедурной парадигмы существование ооп - невозможно. и вот это:
и сможем сделать так:
который реализуется при помощи обычных свободных функций самой что ни на есть процедурной парадигмы. и разница между сишкой и каким нибудь "тру-ооп-языком" заключается лишь в том, что в первом случае всё делается вручную. а во втором - куча синтаксического сахара. и вот сейчас будет главный тезис: оо-парадигма, не что иное, как эволюция развития процедурной парадигмы. считайте, что ооп - наследник процедурщины. "парадигма" вообще - это система взглядов и способа абстрагирования. в контексте оо-программирования: смотреть в исходный код, и видеть не просто какие то закорючки, а объекты - сущности, наделенные свойствами и умениями. взять какой нибудь к примеру std::string. вполне себе полноценный самостоятельный механизм. ну или там, std::vector какой нибудь. они и не нуждаются ни в каком наследовании, но от этого они не перестают быть механизмами. я хочу сказать, что наследование, полиморфизм - это конечно киты, на котором держится развитое оо-программирование. но это не является основополагающим для самой парадигмы. Добавлено через 5 минут вот здесь интересный момент: у них есть что-то общее. понятие функции, например. но сама фп-парадигма в корне отличается от процедурщины. если рассматривать фп в контексте с++, то это - язык метапрограмминга. полный по тьюрингу, но он в корне отличается и от привычной сишной процедурщины, и от привычной приплюснутой системы классов. собственно, главная проблема новичков с шаблонами: они привыкли думать в оопешном стиле. а что бы освоить шаблоны, нужно думать в фпшном стиле. проблема новичков с Александресску - ребятам тупо трудно перестроить мышление. Алесандресску забыл сказать, что с шаблонами нужно думать по другому. я хочу сказать, что фп, и процедурщина - вообще не совместимые парадигмы. там нужно по разному думать.
0
|
|||||||||||||||||||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 30.01.2017, 22:23 | ||
|
0
|
||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 30.01.2017, 22:46 | |
|
0
|
|
|
Заблокирован
|
||
| 30.01.2017, 22:50 | ||
|
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 30.01.2017, 22:54 | |||
|
Добавлено через 1 минуту
0
|
|||
|
Заблокирован
|
|||||
| 30.01.2017, 23:00 | |||||
|
Что касается шаблонов, то это можно конечно, назвать метапраграммированием, с натяжкой. Это макросистема, переписывание кода препроцессором. С++ де факто сам представляет из себя препроцессор си, хотя сейчас уже таковым не является. Но переписывание шаблонов препроцессором -- это слишком убогий вид метапрограммирования. Настоящее метопрограммирование немыслимо без интроспекции и рефлексии, свойств, которыми в полной мере сейчас обладают только некоторые ООП-языки, и некоторые лиспы. Добавлено через 1 минуту Добавлено через 1 минуту
0
|
|||||
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
| 30.01.2017, 23:25 | ||||||
|
и это не мешает ей манипулировать указателямии на функции. что за бред? вы вообще понимаете, как устроен полиморфизм на низком уровне? как устроенна технология COM ? это всё - сишка чистой воды. к тому же, я ничего ни с чем не сравниваю. я конкретно утверждаю, что матапрограммирование на плюсах исповедуют функциональную парадигму. будите спорить с очевидным? хотя в принципе... не считая сериализации допустим, что уже сейчас нельзя сделать, используя существующую технологию метапрограмминга?
0
|
||||||
|
Заблокирован
|
|
| 30.01.2017, 23:32 | |
|
0
|
|
|
8973 / 4319 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
| 30.01.2017, 23:34 | |
|
0
|
|
| 30.01.2017, 23:34 | |
|
Solid Works Api
Применение SOLID принципов Solid Works Api и C#
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|