У меня часто возникают конфликты имен между пространством имен и классом в этом пространстве имен, и я хотел бы узнать, как лучше всего справиться с этим, когда представляется целесообразным использовать эти имена в первую очередь, помимо добавления случайных префиксов.
Казалось, имеет смысл иметь пространство имен Models.Technology с десятками классов технологий (например, оружие, сельское хозяйство, технологии переработки) и некоторыми связанными интерфейсами. Я также решил создать в классе имен Technology абстрактный класс Technology, из которого происходят все технологии.
Однако, это заставляет меня использовать такой код:
public Technology.Technology research(Technology.Technology tech) {...}
и аналогично:
public Building.Building build(int count) {...}
Кстати, я не назвал свое пространство имен Технологии, поскольку я использую этот термин в другом месте в качестве оболочки для списка доступных технологий ...