Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Delphi: Общие вопросы > Наследование и передача параметров |
Автор: DarkProg 10.1.2013, 11:56 | ||||
Добрый день. Что-то я то ли загнался и не вижу очевидного решения, то ли я чего-то не знаю... Значит попробую обрисовать проблему, у меня есть вроде такой системы классов, для обработки файлов, существует два формата файлов, различия достаточно серьёзные, но общий принцип обработки есть, т.е. как бы шаг1, шаг2, шаг3 и т.д. Система упрощённо выглядит так
Мне не нравится повторное вычисление одних и тех же значений. По сути это одноразовое вычисление, которое ну к примеру модифицирует некое строковое значение, далее ну нигде эта функция вычисления, а также вычисленное значение будут не нужны, т.е. по сути она одноразовое значение и не более того, всё это нужно только здесь в этой функции. Как решение, я ввёл у базовой функции переменную Buffer типа Variant и сделал так
Получается проблема решена, но мне не нравится способ решения, может можно как-то более элегантнее или правильнее решить данную проблему? |
Автор: k0rvin 10.1.2013, 12:34 | ||||
Зачем тебе какой-то промежуточный буфер? Сделай p protected-полем базового класса и юзай ее на здоровье в потомках:
или вообще вот так (пишу по памяти, могут быть ошибки):
|
Автор: DarkProg 10.1.2013, 13:00 |
k0rvin, ты не понял меня. Мне это значение нужно один раз, конкретно в этой функции, для этого объявлять целую переменную и держать под него выделенную память чего-то совсем не хочется, метод мне этот тоже даром не нужен ни у потомков ни у предка(он вообще не в виде метода существует, а в виде нескольких преобразований на один раз). Точно второй вариант... блин... половина кода на таком же принципе, просто надо разбить на подфункции и соответствующие реализации сделать у потомком... и без всяких левых переменных, переменную можно передавать в качестве параметра функциям... Точно загнался... блин... |