Я написал код, который запускает много разных симуляций, каждый в своем собственном Simulation
объекте.Чтобы извлечь результаты из Simulation
, сначала нужно попросить Simulation
создать экземпляр Report
(как один из потомков Simulation
).
Хотя Simulation
может содержать много экземпляров Report
, процесс создания довольно дорогой, поэтому, если в этом конкретном Simulation
уже есть Report
, я хочу использовать его повторно.а не создавать новый.
Доступ к экземплярам Report
осуществляется из разных классов в моем коде.Я хотел бы избежать репликации кода, который сначала проверяет, существует ли уже Report
в этом конкретном Simulation
, а затем на основе этого либо получить существующий, либо создать новый.
Я действительно хочу, чтобы был только один экземпляр Report
на Simulation
- вроде как синглтон ...
Я вижу два пути:
Создание своего рода «одиночного» класса отчета, который позволяет создавать не более одного Report
на Simulation
.Возможно ли это?
Создание класса SpecialSimulation
, который расширяет Simulation
, а в SpecialSimulation
включает синглтон, который содержит Report
.Является ли это излишним?
Simulation
и Report
из коммерческого Java API, на который у нас есть лицензия;Я не могу изменить их исходный код.
Делать все возможное, чтобы изучить веревки Java и ООП ...