- 1
https://www.youtube.com/watch?v=lfdAwl3-X_c
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−1
https://www.youtube.com/watch?v=lfdAwl3-X_c
guest8 30.08.2019 17:08 # −999
DyKaJluC 01.09.2019 15:34 # 0
Мы его уже взяли.
В качестве свидетеля, последуйте за мной.
guest8 30.08.2019 17:16 # −999
adrnin 30.08.2019 17:21 # −1
То в "ООП" надо писать:
Именно поэтому я за "процедурное программирование".
guest8 30.08.2019 17:29 # −999
OlegUP 30.08.2019 20:19 # −1
Desktop 30.08.2019 20:35 # −1
OlegUP 31.08.2019 20:52 # −1
guest8 31.08.2019 20:55 # −999
Pretty_Young_Thing 31.08.2019 21:04 # −1
> значит их нельзя использовать.
Как из первого утверждения следует второе? Почему я, например, не могу прочитать рид-олни свойство apple.color?
guest8 31.08.2019 21:15 # −999
guest8 30.08.2019 20:37 # −999
OlegUP 31.08.2019 20:50 # −1
ОНи вообще не нужны, так как нарушают инкапсуляцию, даже не ее, а сокрытие.
gost 31.08.2019 20:55 # −1
Фанатики не нужны. Идеально-инкапсулированные классы, полностью изолированные от внешней среды, пусть пишут ООП-цари.
guest8 01.09.2019 15:00 # −999
guest8 31.08.2019 20:58 # −999
Pretty_Young_Thing 31.08.2019 21:05 # −1
guest8 31.08.2019 22:58 # −999
Pretty_Young_Thing 31.08.2019 23:03 # −1
Кстати, а каким дебагером ты пользовался в 83-м?
guest8 31.08.2019 23:15 # −999
guest8 31.08.2019 23:16 # −999
guest8 01.09.2019 14:59 # −999
OlegUP 30.08.2019 20:33 # 0
А в видео говорят о том, что объект - это не просто набор данных с функциями, а сущность обладающая свойствами.
В ПП нету наследования, хоть и есть композиция.
В ПП нету полиморфизма.
В ПП ты данные определяешь и держишь внутри функций, хотя и есть структуры.
В ООП ты данные определяешь в отдельном месте и не мешаешь с алгоритмом. Но при этом у тебя есть такая вещь как класс, которая именно для этого в т.ч. и придумана.
Именно поэтому я за ООП.
guest8 30.08.2019 20:40 # −999
OlegUP 30.08.2019 21:17 # −1
В си есть указатель на void, и его можно скастить в любой функции к любому типу.
Но в C++ есть шаблоны, которые решают эту залачу в CT, и при этом выглядят более наглядно.
Зато в си нету перегрузки функций, а это часть полиморфизма, а значит и нету виртуального наследования.
Ну и конструкторы с деструкторами вызывающие сначала для объекта malloc не забываем писать сами.
guest8 30.08.2019 21:31 # −999
OlegUP 01.09.2019 14:49 # 0
То есть здесь ты уже не пишешь одну функцию на несколько случаев, а целый класс функций на несколько случаев, и каждый частный случай можешь переопределить.
guest8 01.09.2019 14:57 # −999
OlegUP 02.09.2019 11:25 # 0
Но я думаю, что в ООП как раз таки можно и без этого обойтись.
Наличие в нем классов еще не говорит о том, что они плодятся без всякой на то нужды.
Полностью принцип звучит же так: "Не плоди сущности без острой нужды"
Ну и вспомним философию UNIX:
Вместо одной программы которая делает все сразу лучше много программ, мелких, которые делают свое дело хорошо.
adrnin 30.08.2019 23:30 # −1
Не очень понятно зачем вводить какое-то ограничение на количество методов. Объект должен уметь делать то, что для него было бы логично уметь.
В ответ на вопросы для примера предлагает иметь различные классы для:
- файла возвращающего целиком свое содержимое;
- файла возвращающего массив строк;
- файла с произвольным доступом;
- файла с известной кодировкой;
- файла без кодировки.
Мне не очень понятно, зачем файлу нужно уметь сплитить строки, и почему нельзя указать в конструкторе, что кодировка не известна. А все, что осталось не займет много кода и в одном классе.
Иметь несколько маленьких классов конечно лучше, чем один большой и сложный, но если с этим перестараться получится пример, что я привел выше.
Про иммутабельность согласен, но вот про отсутствие геттеров не очень, если я не могу обратиться к уже открытому файлу за путем к нему, то мне придется хранить его путь где-то снаружи, и где тогда это ваше хваленое выделение данных в отдельное место?
guest8 30.08.2019 23:42 # −999
adrnin 31.08.2019 00:00 # −1
Классов для сортировок там нет случайно?
guest8 31.08.2019 01:15 # −999
Pretty_Young_Thing 31.08.2019 20:55 # −1
guest8 01.09.2019 15:01 # −999
guest8 01.09.2019 16:03 # −999
DyKaJluC 01.09.2019 16:09 # 0
guest8 31.08.2019 00:45 # −999
guest8 30.08.2019 17:37 # −999
guest8 30.08.2019 23:01 # −999
guest8 30.08.2019 23:03 # −999
guest8 30.08.2019 23:03 # −999
guest8 30.08.2019 23:12 # −999
Pretty_Young_Thing 31.08.2019 21:18 # −1
BATHNK 31.08.2019 21:14 # −103
Pretty_Young_Thing 31.08.2019 21:17 # −1
cmepmop 31.08.2019 21:57 # −1
А я то думал - свежее мясо на гк.