![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
DarkProg |
|
||||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
Добрый день.
Что-то я то ли загнался и не вижу очевидного решения, то ли я чего-то не знаю... Значит попробую обрисовать проблему, у меня есть вроде такой системы классов, для обработки файлов, существует два формата файлов, различия достаточно серьёзные, но общий принцип обработки есть, т.е. как бы шаг1, шаг2, шаг3 и т.д. Система упрощённо выглядит так
Мне не нравится повторное вычисление одних и тех же значений. По сути это одноразовое вычисление, которое ну к примеру модифицирует некое строковое значение, далее ну нигде эта функция вычисления, а также вычисленное значение будут не нужны, т.е. по сути она одноразовое значение и не более того, всё это нужно только здесь в этой функции. Как решение, я ввёл у базовой функции переменную Buffer типа Variant и сделал так
Получается проблема решена, но мне не нравится способ решения, может можно как-то более элегантнее или правильнее решить данную проблему? -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
||||
|
|||||
k0rvin |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 442 Регистрация: 24.1.2010 Репутация: 1 Всего: 5 |
Зачем тебе какой-то промежуточный буфер? Сделай p protected-полем базового класса и юзай ее на здоровье в потомках:
или вообще вот так (пишу по памяти, могут быть ошибки):
-------------------- “Object-oriented design is the roman numerals of computing.” — Rob Pike All software sucks |
||||
|
|||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
k0rvin, ты не понял меня. Мне это значение нужно один раз, конкретно в этой функции, для этого объявлять целую переменную и держать под него выделенную память чего-то совсем не хочется, метод мне этот тоже даром не нужен ни у потомков ни у предка(он вообще не в виде метода существует, а в виде нескольких преобразований на один раз).
Точно второй вариант... блин... половина кода на таком же принципе, просто надо разбить на подфункции и соответствующие реализации сделать у потомком... и без всяких левых переменных, переменную можно передавать в качестве параметра функциям... Точно загнался... блин... Это сообщение отредактировал(а) DarkProg - 10.1.2013, 13:01 -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |