Я прошу прощения за странное название, я не знал, как задать вопрос, поэтому, если у вас есть какие-либо предложения относительно того, что было бы более уместно, дайте мне знать, и я обновлю его.
Часто при программировании я бы использовал Enums в качестве ключей к словарям, значениями которых являются данные, относящиеся к enum.Обычно я делаю это до того, как осознаю, что с этим перечислением будет связано много данных, что затем приведет меня к созданию типа данных.
Например, у меня может быть перечисление:
public enum AreaKey
{
Home,
Hospital,
Park,
TrainStation
}
, а затем словарь (Vector2 - класс с 2 целыми числами):
Dictionary<AreaKey, Vector2> areaCoordinatesByAreaKey;
Позже я решу, что хочу получить кучу других данных, связанных с этой областью, поэтомувместо этого я создаю новый класс с именем:
public class Area
{
Vector2 coordinates;
string name;
// more data
}
Теперь, чтобы ссылаться на эти данные, я знаю, что могу просто создать словарь, используя тот же enum, что и ключ, для извлечения указанной области, но это всегда кажется громоздкимдля меня, и почти как будто это не правильно ООП.
У меня есть объекты области.У них есть конкретные данные, которые должны сделать их уникальными друг от друга.Почему я должен использовать enum?Кроме того, мне не нравится ломать OCP каждый раз, когда я понимаю, что мне нужна новая область.Было бы здорово просто создать объект и не беспокоиться о внешнем управлении.Хотя поиск порядка 1 - это хорошо.
Конечно, я мог бы использовать ключ строки, чтобы получить его, но это означает, что люди должны знать строки, и это не очень безопасно для типов ... Перечисления легко читаются.Помогите мне переполнить стек!