Существуют ли шаблоны проектирования, которые позволяют только определенному классу создавать новый конкретный класс? - PullRequest
0 голосов
/ 21 апреля 2011

без использования Inner Class

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

Существует другой класс, содержащий ссылку на массив массива B, который вызовет ошибку, пока я изменю класс B на innerClass, так как пространство имен изменяется. я не могу изменить этот класс

1 Ответ

3 голосов
/ 21 апреля 2011

Если классы A и B являются единственными классами в одном и том же пакете, то создание приватного конструктора из пакета класса B приведет к тому, что вы хотите.

Типичный способ управления построением - сделать конструктор B частным и добавить статический метод фабрики, возможно, тот, который принимает экземпляр A?

Изменение B на интерфейс и создание A для создания внутренних классов, реализующих B, - это еще один вариант.

...