Как назвать структуру, которая представляет размер и позицию? - PullRequest
2 голосов
/ 12 мая 2009

У меня есть структура с именем WaveSize, которая представляет количество выборок или количество времени, но я также использую эту структуру для представления позиции или смещения в волне.

Несмотря на то, что довольно часто представлять размеры и позиции в системе координат с типом Vector2d, я не могу найти достаточно абстрактное хорошее имя для представления длин волн и положений / смещений волн.

Я нахожу странным видеть что-то вроде:

public WaveSize Size { get; }
public WaveSize Offset { get; }

Я бы предпочел придумать хорошее имя, чем создавать пустые классы или использовать 'using'.

Любые предложения будут высоко оценены. Заранее спасибо.

РЕДАКТИРОВАТЬ: как предполагали Рид Копси и Марк Гравел, имеет смысл иметь два разных класса, поскольку они представляют собой два разных понятия, поэтому любое сходство в коде следует рассматривать как простое совпадение.

Ответы [ 5 ]

3 голосов
/ 12 мая 2009

У меня было бы две отдельные структуры, и было бы легко преобразовывать их между собой.

Вы пытаетесь представить здесь две концепции: одну для позиции, а другую для размера. Поскольку это две концептуально отличные идеи, я бы сделал их двумя структурами.

Я также согласен с ответом Марка Гравелла относительно структур Точка / Размер BCL Я думаю, что они хорошая модель для подражания.

3 голосов
/ 12 мая 2009

Вы можете сравнить со структурами winforms Point и Size ... они решили, что даже если они похожи, держать их отдельно. Это имеет смысл в алгебраическом смысле:

Point - Point = Size
Point + Size = Point
Size + Size = Size
Point + Piont = ???? error (no defined operator)

и т.д.

1 голос
/ 12 мая 2009

волновой вектор?

0 голосов
/ 12 мая 2009

Разве обычное название для «смещения» не фазовый сдвиг?

Я бы, наверное, пошел с WaveProperties, правда.

0 голосов
/ 12 мая 2009

Не могли бы вы иметь структуру, называемую просто Wave, и тогда размер и смещение плотно вписались бы в более общее имя? Я надеюсь, что у вас уже нет структуры Wave:)

...