LINUX.ORG.RU

Зачем нужно ООП

 


2

3

Далёк я буду от правды если скажу, что единственная причина появления ООП - нельзя было сказать draw(circle) и draw(rectange) в одной программе (где rectange и circle - переменные с различными структурами)?

★★★★★
Ответ на: комментарий от vurdalak

и не могут быть функциями ни в каком виде.

Вообще-то могут. Есть функция задержки, например)

Описывают же как-то рекурсивные ЦФ.

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

Freyr69 ★★★
()
Ответ на: комментарий от Freyr69

просто поля и вся фигня тут - лишние сущности, достаточно просто функций и данных.

А что бы не запутаться какие функции для каких данных, нам их нужно как то связать между собой и таким образом мы придумали инкапсуляцию.

TDrive ★★★★★
()
Ответ на: комментарий от Freyr69

Данные у тебя одни, входные, которые преобразуются в выходные.

Состояния каких нибудь озу ты где хранишь?

TDrive ★★★★★
()
Ответ на: комментарий от TDrive

Состояния каких нибудь озу ты где хранишь?

Да че далеко ходить то, даже состояние (чистых?) рекурсивных вызовов, храняться на стеке, до поры, а это, фактически эквивалентно сраной итерации. Это, примерно также, как некоторые думают, что булки на деревьях растут, епт.

J-yes-sir
()
Ответ на: комментарий от TDrive

У чувака либо адовая каша в голове, либо, скорее всего, он троллит. После той ссылке «о вреде ООП» я бы вообще не связывался. Хотя, смеха ради, попроси его ссылку на его репозитории с кодом.

true_admin ★★★★★
()
Ответ на: комментарий от Freyr69

переменные могут существовать

И где существует переменная, которая хранит состояние триггера? В какой функции, если каждая функция живёт только в момент прохождения сигнала через узел?

vurdalak ★★★★★
()
Ответ на: комментарий от vurdalak

И где существует переменная, которая хранит состояние триггера? В какой функции, если каждая функция живёт только в момент прохождения сигнала через узел?

Нигде. Тебе нужна функция задержки, я же сказал.

если каждая функция живёт только в момент прохождения сигнала через узел?

Нет конечно, что за бред, у тебя функция от времени.

Freyr69 ★★★
()
Ответ на: комментарий от Freyr69

Тебе нужна функция задержки, я же сказал.

А поподробнее? Я как человек от ООП понимаю так, что нечто запускает «функцию цепи», которая запускает функции над каждым элементом. Так где хранится текущее состояние элементов?

vurdalak ★★★★★
()
Ответ на: комментарий от J-yes-sir

если в ФП нет времени

Ну приехали, в фп состояний нет, функцию от времени тебе кто запрещает запилить?

Freyr69 ★★★
()
Ответ на: комментарий от vurdalak

Так где хранится текущее состояние элементов?

Нигде. Когда ты моделируешь сигнал, ты же даешь не мгновенные значения на вход, а сигнал на определенном временном отрезке. Некая входная S(t), цепь описывается переходной функцией h(t), на выходе получишь свертку.

Freyr69 ★★★
()
Ответ на: комментарий от Freyr69

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

vurdalak ★★★★★
()
Ответ на: комментарий от TDrive

ох жеж.

в С плохо(не вполне всем удобно через static всем рулить) с модульностью было ( до пространств_имён С++) поэтому сокрытие прикрутили через доступ к полям тем более атд были модны.

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

qulinxao ★★☆
()
Ответ на: комментарий от qulinxao

Инкапсуляцию это не обязательно сокрытие или ограничение доступа, связь методов с данными так же инкапсуляция.

TDrive ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.