Как разрешить доступ только одному классу к определенному классу API
У меня есть определенный класс из пакета: org.jdesktop.swingx.JXErrorPane.
Я использовал фабричный класс для вызова методов в классе JXErrorPane, в то время как я запрещаю другим классам вызывать JXErrorPane. Любой другой класс, который должен использовать класс JXErrorPane, должен вызывать фабричный класс.
Я нашел на этом сайте: http://www.eclipsezone.com/eclipse/forums/t53736.html о том, как запретить доступ к определенному классу или пакету, но это также запретило бы и мой класс фабрики.
Есть ли способ, позволяющий только фабричному классу посещать класс API, но запрещающий любые другие классы?
1 ответ
Ваш вопрос немного странный, но вот мои два цента стоят: модификаторы доступа должны быть вашими друзьями. Модификатор доступа по умолчанию на уровне класса имеет смысл, если вы не хотите, чтобы класс был виден за пределами вашего пакета. Конструктор по умолчанию ограничил бы конструкцию вашего объекта, чтобы он был виден только внутри пакета. Я предполагаю, что это приложение фабрики, о которой вы говорите в своем вопросе. Фабрики предназначены для создания объектов.
Что касается ограничения вызовов методами для вашей фабрики, это неправильное применение фабрики. Возможно, вы ищете шаблон Proxy или Delegate. Даже в этом случае модификаторы доступа - ваш друг. Я не уверен, почему вы хотите такую сложность, хотя