powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Strict private
25 сообщений из 95, страница 2 из 4
Strict private
    #39614412
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
asutp2defecatorпропущено...

ты же назвал сторонников полиморфизма безумными
а ведь полиморфизм это другое, не то, что ты только что описаля назвал безумными не тех, кто адекватно использует различные области видимости в классах/необходимые элементы для перекрытия в зависимости от задачи, а тех, кто желает изменять все что вздумается наследному классу и ненавидит strict private))).
я не использую strict private и прочие дебильные генерики
с твоей точки зрения я - безумный сторонник полиморфизма !
...
Рейтинг: 0 / 0
Strict private
    #39614413
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
makhaonавторНо как же бесит при этом муторная сверка исходников после обновления...

Дифф в помощь. Автоматический или руками пробежаться. Винмержем я, например, инди свожу за час-полтора. У меня правок десятка два мест. Шансов, что их добавят, я думаю, около нуля. Быстрее руками свести. Особенно если надо не часто.
я через Araxis Megre свожу, ещё быстрее получается
...
Рейтинг: 0 / 0
Strict private
    #39614416
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonДифф в помощь. Автоматический или руками пробежаться. Бесит не потому, что долго,
а потому, что идиотское занятие.
...
Рейтинг: 0 / 0
Strict private
    #39614543
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из одной мертвой галактики,

ИМХО нововведение хорошее, его действительно удобно использовать при рефакторинге, но одного его недостаточно.

Использование сторонних компонентов (да и своих тоже), тут естественно плохо что нельзя что-то достать. Было бы неплохо иметь задекларированный потайной доступ к приватным объектам (недекларированный есть и не очень хороший). Например, в питоне и ряде других языков неплохая парадигма, это позволило бы простым поиском отслеживать в своих да и чужих исходниках необходимость улучшения компонента .

по поводу задания\не задания виртуальности, ИМХО тут бы помогла реализация механизмов АОП - тогда бы эта проблема просто исчезла.

PS: на каждый болт должна быть своя гайка, иначе использование превращается в гумно
...
Рейтинг: 0 / 0
Strict private
    #39614571
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А у всех ли будет Delphi 2007 и выше ?
...
Рейтинг: 0 / 0
Strict private
    #39614578
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimaBr,

да, у всех.
...
Рейтинг: 0 / 0
Strict private
    #39614580
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)Было бы неплохо иметь задекларированный потайной доступ к приватным объектам
1) Если такое понадобилось - плохо спроектированная архитектура.
2) Если приперло, есть RTTI
...
Рейтинг: 0 / 0
Strict private
    #39614608
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кмк, легче при обновлении сторонних библиотек накатить диффом элементарные изменения, нежели ловить подводные камни.
Если исходники есть - то можно и выстрелить себе в ногу, если очень хочется:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
TOrigClass = class
private
  FSomeField: SomeType;
end;

...

TOrigClassHack = class
public
  FSomeField: SomeType;
end;

TOrigClassHack(OrigClassObj).FSomeField := ...
...
Рейтинг: 0 / 0
Strict private
    #39614654
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-Citekealon(Ruslan)Было бы неплохо иметь задекларированный потайной доступ к приватным объектам
1) Если такое понадобилось - плохо спроектированная архитектура.
2) Если приперло, есть RTTI1 - о чём и речь, но наш мир не идеален, и это нужно очень часто, а изменить компонент возможности нет - зачем сопротивляться очевидному?
2 - ИМХО лечилка хуже болезни, так как ошибки в декларациях при динамическом исполнении невозможно поймать при компиляции. Пока самый адекватный способ это баг в компиляторе с " with self do " в хелпере
...
Рейтинг: 0 / 0
Strict private
    #39614694
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

Ок, переопределили метод, вытащили из текущей версии реализацию, добавили свой код. Пришла новая версия, в которой метод переписали. Что-то поменялось?
...
Рейтинг: 0 / 0
Strict private
    #39614698
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonСоколинский Борис,

Ок, переопределили метод, вытащили из текущей версии реализацию, добавили свой код. Пришла новая версия, в которой метод переписали. Что-то поменялось?
+1.

Вопросы видимости - в том числе вопросы протокола общения заказчика с пользователем.
То есть, если можешь и хочешь лезть в кишки, то без претензий к разработчику насчет того, что в очередном апдейте изменилась внутренняя реализация.
...
Рейтинг: 0 / 0
Strict private
    #39614731
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaonОк, переопределили метод, вытащили из текущей версии реализацию, добавили свой код. Пришла новая версия, в которой метод переписали. Что-то поменялось? Не понял вопроса.
...
Рейтинг: 0 / 0
Strict private
    #39614744
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борис,

Перегрузили виртуальный метод, утащили код, частично поменяли поведение. А его поведение опять поменялось в оригинальном классе. И опять сводить? :) Сильно ли тут перегрузка поможет?
...
Рейтинг: 0 / 0
Strict private
    #39614777
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,
Эта ситуация принципиально проще. В идеале:
1. Смотрим в whatsnew отличия версий и решаем, нужно ли что-то менять у себя.
2. Если нужно - сравниваем свою надстройку с измененной базовой реализацией и выбираем одно из 3 решений
2а. оставить все как есть
2б. убрать собственный фикс если он уже присутствует в штатной версии.
2в. переписать надстройку.
Собственно, только п. 2в может потребовать каких-то осмысленных действий. Но это намного проще тотального сличения исходников даже с помощью соответствующих инструментов.
...
Рейтинг: 0 / 0
Strict private
    #39614803
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
жесть когда юзаешь крэкеры для доступа к приватам а в новой версии layout класса поменялся и новые члены воткнули не в конец
...
Рейтинг: 0 / 0
Strict private
    #39614809
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavan,

или вообще все кишки переписали к черту и ни одного старого private члена не оставили. А то и класс-адаптер подсунули, вместо старого, а реализацию в каком-нибудь вебсервисе заховали. Нефик лезть в private, то есть.
...
Рейтинг: 0 / 0
Strict private
    #39614814
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДНефик лезть в private, то естьв неидеальном мире увы приходится
...
Рейтинг: 0 / 0
Strict private
    #39614815
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский Борисmakhaon,
Эта ситуация принципиально проще. В идеале:
1. Смотрим в whatsnew отличия версий и решаем, нужно ли что-то менять у себя.
2. Если нужно - сравниваем свою надстройку с измененной базовой реализацией и выбираем одно из 3 решений
2а. оставить все как есть
2б. убрать собственный фикс если он уже присутствует в штатной версии.
2в. переписать надстройку.
Собственно, только п. 2в может потребовать каких-то осмысленных действий. Но это намного проще тотального сличения исходников даже с помощью соответствующих инструментов.при таком подходе нужно использовать исключительно собственноручно написанные классы и компоненты...
...
Рейтинг: 0 / 0
Strict private
    #39614816
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2нужно использовать исключительно собственноручно написанные классы и компонентыв идеале с собственным компайлером и на своей оси
...
Рейтинг: 0 / 0
Strict private
    #39614820
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vavanasutp2нужно использовать исключительно собственноручно написанные классы и компонентыв идеале с собственным компайлером и на своей оси однозначно :)
...
Рейтинг: 0 / 0
Strict private
    #39614824
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X-CiteЕсли у вас более одного класса в модуле, и они могут пересекаться, то лучше strict.

+1
Когда 2 и более класса в одном модуле, они получают доступ к своим private элементам.
Что бы это исправить, ввели новое словечко - strict private
По идее, любой private и так должен быть strict private. Не знаю, о чём думало Ембрякоделло или как её там по имени.
Если ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс.

Private в Delphi - это недоразумение.
А пример от X-Cite - это хороший пример того говнокода, который потом получается.
...
Рейтинг: 0 / 0
Strict private
    #39614981
Василий №2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Valery_BЕсли ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс.
Явист детектед))
...
Рейтинг: 0 / 0
Strict private
    #39614988
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B...
Если ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс.
...

А как ты реализуешь два класса в раздельных модулях, чтобы в каждом классе было поле типа другого класса?
Это не C#, тут от циклических ссылок в uses компилятор благим матом вопит.
Думаешь, в дельфи монструозных размеров модули создают из-за гигантофилии?
...
Рейтинг: 0 / 0
Strict private
    #39614991
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BX-CiteЕсли у вас более одного класса в модуле, и они могут пересекаться, то лучше strict.

+1
Когда 2 и более класса в одном модуле, они получают доступ к своим private элементам.
Что бы это исправить, ввели новое словечко - strict private
По идее, любой private и так должен быть strict private. Не знаю, о чём думало Ембрякоделло или как её там по имени.
Если ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс.

Private в Delphi - это недоразумение.
А пример от X-Cite - это хороший пример того говнокода, который потом получается.
дурная мысль заразна, гон на Embarcadero тоже не месту
...
Рейтинг: 0 / 0
Strict private
    #39614992
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДValery_B...
Если ты не разрабатываешь компоненты, то лучше использовать 1 модуль=1 класс.
...

А как ты реализуешь два класса в раздельных модулях, чтобы в каждом классе было поле типа другого класса?
Это не C#, тут от циклических ссылок в uses компилятор благим матом вопит.
Думаешь, в дельфи монструозных размеров модули создают из-за гигантофилии?

Это решается разделением абстракции от реализации
...
Рейтинг: 0 / 0
25 сообщений из 95, страница 2 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Strict private
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]