Мне интересно, погода лучше решит мою проблему. Лучше в том смысле, что не каждый объект класса Segment должен создавать новый объект базы данных.
Я пытаюсь сохранить только одну базу данных в моей программе, потому что база данных очень большая, и я уверен, что есть более эффективное решение для этого.
База данных содержит объекты класса SegmentInformetion в списке. Каждый объект содержит много информации, необходимой каждому объекту сегмента для его реализации.
Класс Layer содержит список сегментов. Конструктор Layers содержит массив с идентификаторами. Каждый сегмент будет получать свою информацию из базы данных в зависимости от идентификатора, с которым он вызывает базу данных.
Database {
List<SegmentInformation> segInfoList;
public SegmentInformation getSegInfos( int id ){
return segInfoList.get(id);
}
}
Layer{
List<Segments> segmentList;
public Layer( int[] segmentIDs ){
for (int i : segmentIDs){
segmentList.add( new Segment( segmentIDs[i] ) );
}
}
}
Segment{
double value1;
//....
double valuenN;
public Segment(int sID){
Database db = new Database();
SegmentInformation info = db.getSegInfos( sID );
value1 = info.getValue1();
//....
valueN = info.getValueN();
}
}
Я пытаюсь избежать глобальной статической переменной, содержащей базу данных. Любые предложения для более подходящего способа создания экземпляров всех объектов Сегмента?