Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно назвать методы ?


Страницы:   1 2 3 4

Игорь Шевченко ©   (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


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо