![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно назвать методы ?
Игорь Шевченко © (2005-12-15 13:01:00)Имеется объект с набором свойств и форма с набором контролов. Свойства объекта отображаются в контролах формы и заполняются содержимым контролов. Отображаются после вызова одного метода, заполняются после вызова другого.
Вопрос в том, как наиболее оптимально назвать эти методы, чтобы из названия однозначно было понятно, не глядя в реализацию, что эти методы делают. Методы планируется использовать в любой форме или иерархии форм, где требуется подобная функциональность, объекты и набор их свойств могут быть разными, формы и наборы контролов, сооотвественно, тоже.
Сейчас используются названия методов вида DisplayObject/FillObject,
но...неэстетично :) (с) известный анекдот
Владислав (2005-12-16 11:26:00) [1]Update не нравиться, потому что он встречается в других местах в ином назначении? :)
Игорь Шевченко (2005-12-16 11:18:00) [2]Владислав © (16.12.05 11:12) [73]
Вот-вот, что-то в таком духе и интересует. С первым методом (из объекта в форму) как раз понятно, или
ShowObject[Data] или DisplayObject[Data]
со вторым пока мучительный выбор между Fill и Update
Владислав (2005-12-16 11:12:00) [3]ShowObjectData/ReplaceObjectData
ShowObjectData/UpdateObjectData
ShowObject/UpdateObject
umbra (2005-12-16 10:41:00) [4]ReadObjPropsValues/AssignObjPropsValues
Игорь Шевченко (2005-12-16 10:34:00) [5]Джо © (15.12.05 18:53) [64]
GuAV © (15.12.05 20:06) [67]
Kolan © (15.12.05 20:52) [69]
Не хотелось бы видеть названия методов в стиле комментария
Inc(I); //Прибавить единицу к I
Поясню ситуацию еще раз: хотелось бы, чтобы потенциально любой программист, глядя исключительно на объявления методов, мог бы понять, как ему их надо реализовать, что они делают и с какой целью.
Владислав © (16.12.05 09:20) [70]
Методы у формы, параметр один - объект, свойства (данные) которого надо отображать и, соответственно, заполнять значениями из контролов.
Владислав (2005-12-16 09:20:00) [6]А у этих методов есть параметры? Если да, можно увидеть объявление?
Kolan (2005-12-15 20:52:00) [7]
ShowObjectProperties
FillObjectProperties
Sergey Masloff (2005-12-15 20:20:00) [8]StoreUserInput/UpdateView
GuAV (2005-12-15 20:06:00) [9]InitializeControlsData - заполняет контролы
ApplyControlsData - применяет данные контролов
Джо (2005-12-15 19:09:00) [10]Возможно, я неправильно понял ситуацию, поэтому показываю, как я ее понял. Иллюстрирую куском из своего проекта.
Возможно, это и лишнее.
{Данный интерфейс обеспечивает создание}
{и управление формами, загруженными из ресурсов DFM}
IDynaForm = interface
function LoadForm (const AClassName: WideString): Boolean;
function ShowModal: Integer;
procedure AddVariable (const AControlAndProperty: WideString;
const VarType,PropType: TVarType; VarPtr: Pointer);stdcall;
procedure FillControlValues; stdcall;
procedure ReadControlValues; stdcall;
...
end;
Используется так:
var
Form: IDynaForm;
ADistance: Double;
AName: string;
...
Form := // получаем имплементацию интерфейса
// грузим форму из ресурса
Form.LoadForm ('TMyForm');
try
// регистрируем связь между свойствами контроллов на форме
// и переменными (полями)
// с указанием типов свойств и переменных и автоматической трансляциех их значений
Form.AddVariable ('edDistance.Text', vtDouble, vtString, @ADistance);
Form.AddVariable ('edName.Text', vtString, vtString, @AName);
...
// заполняем свойства контроллов значениями из переменных
Form.FillControlValues;
if Form.ShowModal = mrOk then
begin
// значения свойств контроллов автоматически заносятся
// в соответствующие им переменные
ReadControlValues;
end;
finally
Form.UnloadForm;
end;
Leonid Troyanovsky (2005-12-15 18:58:00) [11]
> Игорь Шевченко © (15.12.05 18:51) [63]
> Не совсем понимаю, причем здесь Notification. Мне нужно
> редактировать часть свойств(данных) некоего объекта путем
> некой формы :) Для этого я, как простой советский программист,
> сначала значениями свойств заполняю соответствующие контролы
> на форме, а потом считываю из контролов измененные значения.
> Для методов формы, которые делают эти действия, хочу подобрать
> имена :)
А я как, раз понял с точностью наооборот :)
Ну, а тогда, чего ты мучаешься - берешь TPropertyEditor
и сочиняешь по его образцу.
--
Regards, LVT.
Джо (2005-12-15 18:53:00) [12]
> [63] Игорь Шевченко
А можно уничтожительный комментарий по поводу [35] Джо? ;)
Игорь Шевченко (2005-12-15 18:51:00) [13]Leonid Troyanovsky © (15.12.05 18:40) [61]
Не совсем понимаю, причем здесь Notification. Мне нужно редактировать часть свойств(данных) некоего объекта путем некой формы :) Для этого я, как простой советский программист, сначала значениями свойств заполняю соответствующие контролы на форме, а потом считываю из контролов измененные значения. Для методов формы, которые делают эти действия, хочу подобрать имена :)
Leonid Troyanovsky (2005-12-15 18:49:00) [14]
> Джо © (15.12.05 18:33) [59]
> А может, имеет смысл сделать вместо двух методов -- одно
> свойство-триггер?
Вот-вот, я тоже про то же, уже вдвое меньше думать ;)
Но, методы, все равно, пригодятся для побочных эффектов.
Зато названия им уже известны.
--
Regards, LVT.
Leonid Troyanovsky (2005-12-15 18:40:00) [15]
> Игорь Шевченко © (15.12.05 13:01)
> Имеется объект с набором свойств и форма с набором контролов.
> Свойства объекта отображаются в контролах формы и заполняются
> содержимым контролов.
А почему это некий объект, а не TComponent?
Как там у него с Notification ? ;)
Ну, а плясать, видимо, нужно от имени этого компонента,
а уж в его действиях будут, видимо, SetControlsPropsForForm,
и GetControlsPropsForForm.
Хотя, на ум сразу приходит, что это должны быть некие
свойства компонента, с побочным действием, скажем, write
которого будут установка требуемых свойств контрола(ов) и др.
Ведь, похоже, что этот компонент должен что-то централизовать.
--
Regards, LVT.
Игорь Шевченко (2005-12-15 18:36:00) [16]Гаврила © (15.12.05 18:19) [57]
Контролов много :)
И эта..хотелось бы, согласно Programming style guide имена методов с глаголов начинать.
Vlad © (15.12.05 18:28) [58]
Собственно, сохранения, как такового нету. Просто заполнение (откуда, собственно, тяготение к глаголу Fill), свойств(данных) объекта из контролов. Хотелось бы обойтись без искусственных аналогий, вроде такой, что заполнение контролов на форме из объекта - это загрузка, а заполнение объекта из контролов - это сохранение. Если бы я считал уместным такие аналогии, то я и вопроса бы не задавал :)
Джо (2005-12-15 18:33:00) [17]А может, имеет смысл сделать вместо двух методов -- одно свойство-триггер?
Vlad (2005-12-15 18:28:00) [18]
> Игорь Шевченко © (15.12.05 18:03) [52]
Резонно, хотя в смысле направлений Display и Store как раз прямо противоположны :-)
C сохранением есть еще вариант ApplyObjectData
Гаврила (2005-12-15 18:19:00) [19]ObjectToControl
ControlToObject
umbra (2005-12-15 18:18:00) [20]нет, я спрашивал про глаголы, а something дописал, чтобы показать, что после глаголов еще что-то будет
ReadObjectProperties/WriteObjectProperties