LINUX.ORG.RU

Вопрос по ООП в CL

 , ,


0

3

Много раз слышал, что в CL очень мощная модель ООП. И вот, когда наконец дошли руки почитать об этом подробней, с удивением обнаружил, что в CL НЕ все есть объект. Тогда непонятно, что же в ней сильного? В смолтоке, джаваскрипте, ио, селфе и во многих других языках все есть объект. А в CL, получается, урезанная модель ООП, близкая к плюсовой? А как с этим, кстати, обстоят дела в схемах?

Ответ на: комментарий от linux-101

надеюсь, понятно теперь?

Еще не совсем. Как эти ценные знания помогут мне «отнаследовать от конкретной сущности класс, а затем, сделать эту сущность экземпляром этого класса»?

Вот, допустим, пишу я текстовый процессор. Какие сущности, экземпляры и классы мне понадобятся?

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

эти ценные знания

Это не ценные знания, это вопрос способности к абстрактному мышлению

помогут

Не помогут.

linux-101
() автор топика
Ответ на: комментарий от anonymous

сделать эту сущность экземпляром этого класса»

Кстати, это даже не обязательно, ибо концептуально, эта сущность и так будет экземпляром этого класса, поскольку, мы можем абстрагироваться от того, содержит ли эта сущность поля в себе, или лезет за ними к «классу». Делать ее экземпляром класса нужно только в том случае, если мы в будущем хотим расширять этот класс, и хотим, чтобы наша сущность наследовала добавленные в свой класс свойства.

linux-101
() автор топика
Ответ на: комментарий от linux-101

Ок, сделаю еще одну попытку. Наследование — это, по сути, техническая сторона, это вопрос реализации. На объект нельзя смотреть как на набор свойств и методов, Иерархия наследования не обязана соответствовать логической иерархии объектов, надеюсь, понятно теперь?

Вы просто перепутали алогичное мышление, абстрактное мышление и абстракцию в программировании.

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

на объект нельзя смотреть как на набор свойств и методов

Объект это ассоциативный массив где ключ - название функции, значение - функция

Debasher ★★★★★
()
Последнее исправление: Debasher (всего исправлений: 1)
Ответ на: комментарий от vurdalak

Никакого, я все выдумал. Пользуйся абстрактным мышлением и наследуй классы от сущностей экземпляров. Только код не пиши, пожалуйста.

anonymous
()
Ответ на: комментарий от Debasher

Объект это ассоциативный массив где ключ - название функции, значение - функция

Объект — это абстрактная сущность, не имеющая ничего общего со своей реализацией, которая может быть какой угодно. А то что вы описали — это ассоциативный массив не больше и не меньше. Но это в Ъ.

linux-101
() автор топика
Ответ на: комментарий от vurdalak

Ты недостаточно абстрактен. Думай о числах не как о числах, а как об чмошнике-ТС, думающем о чем-то похожем на числа. Где-то между Абсолютной Истиной и его мыслями будет сущность, вот от нее и наследуйся.

anonymous
()
Ответ на: комментарий от linux-101

Объект — это абстрактная сущность, не имеющая ничего общего со своей реализацией

Ты хотел сказать интерфейс?

Объекты (они же - ассоциативные массивы, хэши) и работа с ними в Javascript - реализованы не так, как в большинстве языков. С этим связано много ошибок и непоняток.

(c) http://javascript.ru/tutorial/object/intro

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

тнаследовать от конкретной сущности класс, а затем, сделать эту сущность экземпляром этого класса»?

o={a: 1, b: 2, c: 3}
O=function(){this.c=undefined}
O.prototype=o
o=new O
o.c=3
Вот так это делается. В чем проблема? В ваших смолтоках не так чтоли? Тогда мне вас жаль. Выходит, что идеи, заложенные Кеем реализуют совершеннодругие люди, в других ЯП. А Вы способны только кукарекать на форумах за Ъ, смолтокеры хреновы.

anonymous
()
Ответ на: комментарий от Debasher

интерфейс

Это у вас в быдляцком класс-ооп это ынтерфейс. В Ъ — все есть объект.

Объекты (они же - ассоциативные массивы, хэши)

Типичное мнение быдлятины, пришедшей из быдло-ооп.

anonymous
()

Кажется, я знаю, кто автор.

Deleted
()
Ответ на: комментарий от Debasher

Объекты (они же - ассоциативные массивы, хэши) и работа с ними в Javascript - реализованы не так, как в большинстве языков. С этим связано много ошибок и непоняток.

В javascript, объекты, не ограничиваются представлением в хеше, объект представляет из себя, как минимум, поля+цепочку наследования, и объектом следует считать всю совокупность того, что он представляет и что он делает. Даже синтаксически пустой объект наследует от Object. Смотреть на объект таким образом — значит находится на нулевом уровне понимания OOП в JS.

linux-101
() автор топика
Ответ на: комментарий от linux-101

Отвечай тогда, почему нельзя наследовать real от integer?

Наследовать можно, но получится херня, т.к. real не является (частным случаем) integer и, соответственно, имеет другой интерфейс.

no-such-file ★★★★★
()
Ответ на: комментарий от anonymous

Не, ты не выдумал, ты тупо обосрался.

В специальной олимпиаде нет победителей.

anonymous
()

наконец дошли руки почитать об этом подробней

Как же ты подробно читал об объектной системе в CL, если ты его (CL) в глаза не видел?

anonymous
()
Ответ на: комментарий от no-such-file

Допустим, есть мальчик. Мальчик: ноги=2 руки=2 голова=1 х*й=1 Мы можем определить класс человек, выкинуть х*й, и наследовать от него девочку и мальчика. Но можем сделать проще: отнаследовать девочку прямо от мальчика, ререопределив одно поле. х*й=false, п*да=1. Если класс человек нам более не нужен, то и нехер его создавать, ибо, технически это то же самое, а абстрактно класс человек у нас и так есть, нет смысла писать его явно. Все от задачи. А девочка не является частным случаем мальчика, да, только это ничего не меняет с точки зрения работы кода.

linux-101
() автор топика

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

vertexua ★★★★★
()
Ответ на: комментарий от linux-101

А если я хочу несколько женщин с разными именами? А еще чтобы они имели метод can_pee_on_wall, возвращающий true или false.

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

А если я хочу несколько женщин с разными именами?

Да то же самое. Наследуй от девочки и переопределяй имена. Может быть, будет удобней с классом, от задачи.

linux-101
() автор топика
Ответ на: комментарий от tailgunner

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

linux-101
() автор топика
Ответ на: комментарий от linux-101

наследовать от него девочку и мальчика

Уродливо, но можно - интерфейс то одинаковый для человеков. Неудобство тут в том, что если тебе нужен список человеков (а он тебе нужен, иначе нахрена тебе вообще ООП), то придётся делать список мальчиков. Методов, неспецифичных для мальчика или девочки, общечеловеческих, определить нельзя... Короче херня, как я и сказал.

no-such-file ★★★★★
()
Последнее исправление: no-such-file (всего исправлений: 1)
Ответ на: комментарий от linux-101

статически-мыслящих

Ошо в треде! Все в Нирвану!

anonymous
()
Ответ на: комментарий от linux-101

Допустим, есть мальчик. Мальчик: ноги=2 руки=2 голова=1 х*й=1 Мы можем определить класс человек, выкинуть х*й, и наследовать от него девочку и мальчика. Но можем сделать проще: отнаследовать девочку прямо от мальчика, ререопределив одно поле. х*й=false, п*да=1. Если класс человек нам более не нужен, то и нехер его создавать, ибо, технически это то же самое, а абстрактно класс человек у нас и так есть, нет смысла писать его явно. Все от задачи. А девочка не является частным случаем мальчика, да, только это ничего не меняет с точки зрения работы кода.

Ага, проходили. А потом у нас маяки плавают (отнаследованы от кораблей), собака стреляет (унаследована от бота), а игра падает с ошибкой потому что у собаки нет патронов. Дали ей 10к.

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

Да че ты тупишь? Тот же самый абсолютно код

Jane={name: Jane, __proto__: girl}
Это элементарная хрень. Если много девок надо, лучше фабрику создать, и прогнать в цикле по массиву имен.

linux-101
() автор топика
Ответ на: комментарий от no-such-file

нужен список человеков

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

linux-101
() автор топика
Ответ на: комментарий от ados

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

linux-101
() автор топика
Ответ на: комментарий от linux-101

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

Другими словами, бизнес хочет чтобы программирование было серьёзным занятием для зарабатывания денег, а не развлекаловкой для задротов

Debasher ★★★★★
()
Ответ на: комментарий от linux-101

сейчас хороших спецов везде выпиливают

Я правильно понимаю, что и тебя выпилили из ентерпрайза по Марксу?

anonymous
()
Ответ на: комментарий от anonymous
  • топология на множествах моделей
x4DA ★★★★★
()
Ответ на: комментарий от ados

А у маркса, ЕМНИП, была такая (правильная) мысля, что когда капитализм входит в фазу империализма, капиталист стремится к максимальному разделению труда, т.е. где раньше работал, например, токарь-универсал, ставяться обезьяны с автоматами. Т.е. капиталист стремится избавится от зависимости от высококвалифицированных спецов.

linux-101
() автор топика
Ответ на: комментарий от linux-101

Ты когда-нибудь работал программистом? По-настоящему, ну там проект, команда, ТЗ и прочее?

//другой анон

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

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

linux-101
() автор топика
Ответ на: комментарий от linux-101

Я понимаю, о чем ты хочешь сказать. Поддержка кода и все такое.

Нет, не понимаешь. Как и программирование. Понимать и думать, что понимаешь это не одно и то же. И на ЛОРе ты занимаешься тем, что публично доказываешь сам себе мутные выдуманные тобой же аналогии.

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