Как обозвать интерфейс объекта с пропертями?
От: Homunculus Россия  
Дата: 05.02.20 07:17
Оценка:
Есть базовый класс объекта со строковыми properties:

class  IIIII
{
public:
    virtual  void           SetProperty(const char* prKey, const char* prVal)   =   0;
    virtual  const char*    GetProperty(const char* prKey)                      =   0;
}


Вот как IIIII обозвать?

IPropertableObject?

Что-то криво как-то звучит. Нужно чтоб "object" и "property" было в названии.

Подкиньте идейки.
Re: Как обозвать интерфейс объекта с пропертями?
От: klopodav  
Дата: 05.02.20 07:33
Оценка: +1
H>Вот как IIIII обозвать?

H>Нужно чтоб "object" и "property" было в названии.


H>Подкиньте идейки.


IPropertyContainerObject?

Или, если содержать "object" — необязательное условие, тогда просто IPropertyContainer
Re: Как обозвать интерфейс объекта с пропертями?
От: RushDevion Россия  
Дата: 05.02.20 07:35
Оценка: +3 :)
H>Подкиньте идейки.

IPropertyBag
IObjectPropertyBag
IObjectProperySet

Вот люди уже сервис специальный придумали Class name geberator
Re: Как обозвать интерфейс объекта с пропертями?
От: qaz77  
Дата: 05.02.20 08:19
Оценка: +1
Здравствуйте, Homunculus, Вы писали:
H>Есть базовый класс объекта со строковыми properties:

В OpenOffice такая штука называется XPropertySet (Java, полностью: com.sun.star.beans.XPropertySet).
"X" у них вместо "I".
Re: Как обозвать интерфейс объекта с пропертями?
От: Sinclair Россия https://github.com/evilguest/
Дата: 05.02.20 12:00
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>Есть базовый класс объекта со строковыми properties:


H>
H>class  IIIII
H>{
H>public:
H>    virtual  void           SetProperty(const char* prKey, const char* prVal)   =   0;
H>    virtual  const char*    GetProperty(const char* prKey)                      =   0;
H>}
H>


H>Вот как IIIII обозвать?


H>Подкиньте идейки.

1. IDispatch
2. Вообще-то, сигнатура как у HashMap. Может, это IDictionary?

H>IPropertableObject?

H>Что-то криво как-то звучит. Нужно чтоб "object" и "property" было в названии.
Ну, если вам нужно состряпать название, обязательно употребив оба слова, то IObjectWithProperties.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Как обозвать интерфейс объекта с пропертями?
От: Pzz Россия https://github.com/alexpevzner
Дата: 05.02.20 12:21
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>Подкиньте идейки.


В Go принято называть интерфейсы от глагола, который обозначает, чего интерфейс делает, с суффиксом "er". Поэтому там в стандартной библиотеке есть, например, интерфейс http.RoundTripper, он делает HTTP Round-Trip, а не то, что все подумали

Назови свой IProperter
Re: Как обозвать интерфейс объекта с пропертями?
От: ksandro Мухосранск  
Дата: 05.02.20 14:51
Оценка:
Здравствуйте, Homunculus, Вы писали:

H>Есть базовый класс объекта со строковыми properties:


H>
H>class  IIIII
H>{
H>public:
H>    virtual  void           SetProperty(const char* prKey, const char* prVal)   =   0;
H>    virtual  const char*    GetProperty(const char* prKey)                      =   0;
H>}
H>


H>Вот как IIIII обозвать?


H>IPropertableObject?


H>Что-то криво как-то звучит. Нужно чтоб "object" и "property" было в названии.


H>Подкиньте идейки.


Почему бы не назвать просто Properties ну или IProperties, ведь там ничего кроме properties нет, ИМХО самый лучший вариант, ничего лишнего.
Ну, если надо подчеркнуть, что это некая сущность, которая держит в себе properties, то можно назвать IPropertiesHolder
Ну и еще, учитывая, что у вас там хранилище Key/Value пар, можно назвать IPropertiesMap, вроде "map" в С++ относительно стандартное название для всего, что хранит key/value
Отредактировано 05.02.2020 15:03 ksandro . Предыдущая версия .
Re: Как обозвать интерфейс объекта с пропертями?
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 06.02.20 00:03
Оценка: +1
Здравствуйте, Homunculus, Вы писали:

H>Есть базовый класс объекта со строковыми properties:

H>
H>class  IIIII
H>{
H>public:
H>    virtual  void           SetProperty(const char* prKey, const char* prVal)   =   0;
H>    virtual  const char*    GetProperty(const char* prKey)                      =   0;
H>}
H>

H>Вот как IIIII обозвать?

Тест на знание фундаментальных шаблонов проектирования.

Контейнер свойств (англ. property container) — фундаментальный шаблон проектирования, который служит для обеспечения возможности уже построенного и развернутого приложения


/// <summary>Интерфейс, описывающий взаимодействие с контейнером свойств.</summary>
public interface IPropertyContainer
{
      void SetProperty(string name, object value);
      object GetProperty(string name);
      string[] GetPropertyNames();
      void RemoveProperty(string name);
      void RemoveProperties();
}

Читал книги по оформлению кода, сейчас вроде как не рекомендуют подчёркивать принадлежность интерфейса приставкой I, и в целом применять венгерскую нотацию, а это именно она. Выходит что по современным канонам это PropertyContainer, с другой стороны это название всего лишь стереотип, хотя в википедии и понаписали всякого. Но учитывая, что это C++, можно было бы применить парадигму обобщённого программирования и тогда уже станет понятнее какое имя лучше дать.

А вообще можно оставить IIIII, программа будет работать точно так же.
Re[2]: Как обозвать интерфейс объекта с пропертями?
От: alexanderfedin США http://alexander-fedin.pixels.com/
Дата: 14.02.20 18:11
Оценка:
Здравствуйте, Sinclair, Вы писали:
S>Ну, если вам нужно состряпать название, обязательно употребив оба слова, то IObjectWithProperties.
FriendWithBenefits
Sorry...
Respectfully,
Alexander Fedin.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.