Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 25 26 [27] 28 29 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#391
,
|
|
|
|
[сарказм]... а потом узнать, что реализации-то нет оказывается, и линковать не с чем...[/сарказм] |
|
Сообщ.
#392
,
|
|
|
|
Цитата korvin @ нет, ибо 1) модуль ортогонален _всем_ остальным особенностям языка, даже без ООП, 2) модуль загружается только один раз (хотя тут соответчтвие понятию синглтона) 3) имеет зависимости, которые _должен_ разрулить компилятор. (тут классы джавы еще что-то могут, но никак не С++) 1) В ООП модули на уровне логики вообще не нужны - класс полностью обеспечивает модульность. Остается физическое представление. 2) А класс сколько раз загружается ? Или путаем классы и объекты?3) директивы вроде import никто не отменял. Смотри, например, на java. Модулей нет - есть классы, которые объединяются в пакеты. Т.о. получается, что модули в современном С++ не нужны. Их, быть может, следовало когда ввести, но сейчас практически бессмысленно. Добавлено Из модуля при импорте "читается" только часть интерфейса, сам он не компилируется. Далее модули могут компилироваться независимо друг от другу, если не менялись интерфейсные части. Цитата В чем хак? Мы полностью убираем всю лишнюю информацию из интерфейса, который видит клиент. Устраняем лишние зависимости интерфейса от других модулей(интерфейс может не зависит от тех модулей, от которых зависит реализация.Цитата D_KEY @ pimpl относится к реализации уже конкретного функционала. То есть он и не мешает интерфейсам и не заменяет их. По мне, так это хак чистой воды. Цитата Еще одно важное достоинство использования систем типов при разработке программ — это поддержание дисциплины программирования. В частности, в контексте построения крупномасштабных программных систем, системы типов являются стержнем языков описания модулей (module languages), при помощи которых компоненты больших систем упаковываются и связываются воедино. Типы появляются в интерфейсах модулей (или близких по смыслу структур, таких, как классы); в сущности, сам интерфейс можно рассматривать как <<тип модуля>>, содержащий информацию о возможностях, которые модуль предоставляет — как своего рода частичное соглашение между разработчиками и пользователями. Разбиение больших систем на модули с ясно определенными интерфейсами приводит к более абстрактному стилю проектирования, в котором интерфейсы разрабатываются и обсуждаются отдельно от вопросов их реализации. Более абстрактный стиль мышления повышает качество проектов. Полностью согласен. Я очень рад, что TAPL идет в массы ![]() Только в ООП языках модулем является класс. А для "физического" их размещения вполне достаточно файлов и концепции единиц трансляции. |
|
Сообщ.
#393
,
|
|
|
|
Цитата D_KEY @ Полностью согласен. Я очень рад, что TAPL идет в массы ![]() Только в ООП языках модулем является класс. А для "физического" их размещения вполне достаточно файлов и концепции единиц трансляции. 1) это может быть верным только для чистых ОО-языков, к коим С++ не относится 2) задача класса -- описывать объекты, а не служить этаким универсальным комбайном |
|
Сообщ.
#394
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Полностью согласен. Я очень рад, что TAPL идет в массы ![]() Только в ООП языках модулем является класс. А для "физического" их размещения вполне достаточно файлов и концепции единиц трансляции. 1) это может быть верным только для чистых ОО-языков, к коим С++ не относится 2) задача класса -- описывать объекты, а не служить этаким универсальным комбайном 1) Это может быть верно для любых языков, поддерживающих ООП 2) Да. Но тем не менее, класс полностью обеспечивает модульность. |
|
Сообщ.
#395
,
|
|
|
|
Цитата D_KEY @ Это может быть верно для любых языков, поддерживающих ООП нет, контрпример -- CL |
|
Сообщ.
#396
,
|
|
|
|
Цитата korvin @ Цитата D_KEY @ Это может быть верно для любых языков, поддерживающих ООП нет, контрпример -- CL Там классы не обеспечивает модульность? |
|
Сообщ.
#397
,
|
|
|
|
Цитата Qraizer @ Упс. Но коммент. Оказывается, вся COM, без которой Delphi жить не может, один сплошной хак. Нет, интерфейсы соблюдают контракт. Это мысли вслух, они ничем не обоснованны. Ну мы тоже можем выкинуть все исходники и работать только с одними DCU. |
|
Сообщ.
#398
,
|
|
|
|
Цитата D_KEY @ Там классы не обеспечивает модульность? нет |
|
Сообщ.
#399
,
|
|
|
|
Цитата DesweR @ Ну мы тоже можем выкинуть все исходники и работать только с одними DCU. А интерфейсы где смотреть? |
|
Сообщ.
#400
,
|
|
|
|
В некоторых языках это так, только не заменяет, а подменяет Причем в коммерческих (исключительно) целях |
|
Сообщ.
#401
,
|
|
|
|
Цитата --Ins-- @ В некоторых языках это так, только не заменяет, а подменяет Причем в коммерческих (исключительно) целях ![]() Что дают модули(не как единицы трансляции, а на уровне логики), чего не в состоянии обеспечить классы? |
|
Сообщ.
#402
,
|
|
|
|
Цитата korvin @ 2) задача класса -- описывать объекты, а не служить этаким универсальным комбайном +1. Уже устал твердить на разных форумах, что классу просто приписали понятие пространство имен, кое к ООП никакого отношения не имеет. Но ведь иначе нельзя будет заявить что Java/C# - это 100% объектно ориентированные языки. А в этом случае реклама потерпит эпик фэйл и языки не продвинутся на рынок (за счет чего?). Так что это просто дешевая уловка на которую клюют недалекие программисты и менеджеры Добавлено Цитата D_KEY @ Что дают модули(не как единицы трансляции, а на уровне логики), чего не в состоянии обеспечить классы? Всё. Так как задачи у модулей и у классов - совершенно разные |
|
Сообщ.
#403
,
|
|
|
|
Цитата --Ins-- @ Всё. Так как задачи у модулей и у классов - совершенно разные ![]() Ты так и не ответил на вопрос! Цитата D_KEY @ Что дают модули(не как единицы трансляции, а на уровне логики), чего не в состоянии обеспечить классы? |
|
Сообщ.
#404
,
|
|
|
|
Цитата KILLER @ Ты так и не ответил на вопрос! Я ответил - все. Все, что делают модули, т.е. содержат различные обявления и реализации. И если ты считаешь что это задача классов, то искренне сочувствую. Гвозди ты тоже лопатой забиваешь? |
|
Сообщ.
#405
,
|
|
|
|
Цитата --Ins-- @ Я ответил - все. Все, что делают модули, т.е. содержат различные обявления и реализации. И если ты считаешь что это задача классов, то искренне сочувствую. Гвозди ты тоже лопатой забиваешь? Да ты не кипятись так. Какой тогда прок от ваших модулей, если все что ты тут перечислил без проблем реализуется с помощью неймспейсов ??? Немспейс - содержит объявления и реализации, то есть все то что нужно. Ты покажи на примере финт какой нибудь, что бы я мог позавидовать что нема у меня модулей |