Это ограничение в стеке force.com, которое делает проекты среднего размера болезненными, если не непрактичными.Использование управляемых пакетов для получения префикса пакета на самом деле не решает никаких проблем, поэтому оно не стоит того.
Я обычно стараюсь организовать проект в один плоский уровень имен.Вместо реальных пространств имен я буду давать каждому потенциальному пространству имен 3-5 символов, которые будут использоваться в качестве префикса.Любой класс, который принадлежит «пространству имен», получает префикс.Например, если мне нужно пространство имен payroll
, я бы использовал префикс PYRL
.Класс с именем PaycheckCalculator
становится PYRL_PaycheckCalculator
.
Практическое преимущество этого типа соглашений заключается в том, что он помогает предотвратить столкновения имен, а классы группируются по их «пространству имен» при просмотре в отсортированном списке, например вIDE или «Настройка»> «Разработка»> «Классы Apex»
К сожалению, некоторые основные принципы ОО по-прежнему фундаментально нарушены.Вероятно, наиболее важным является то, что каждый класс формирует неявную зависимость от каждого другого класса, к которому он имеет доступ, что составляет всех из них.
Мне бы очень хотелось услышать, как другие обходили это ограничение.