Я думаю, что лучший образец, который подходит для этого случая, - Singleton pattern
.
В этом случае вы примените это к классу Data
, поэтому он будет действовать как «объект базы данных», как вы правильно заявляете. Data
класс никогда не будет меняться (он будет создан только один раз) и его ссылку на словарь.
Как вам это нужно, чтобы быть поточно (хотя вы только чтение, возможно, в будущем вам нужно будет изменить его) я буду основывать свою реализацию в this answer by Bohemian, где вещи лучше объяснить, чем здесь (извините, Я не очень хорошо синхронизирую хаха).
public class Data {
private Dictionary<String, Car> cars = new ...<String, Car>();
private Data() {}
private static class Holder {
static final Data INSTANCE = new Data();
}
public static Data getInstance() {
return Holder.INSTANCE;
}
public double get_paramA(string car,string part){
return cars[car].get_paramA(part);
}
}
Обратите внимание, что если вам необходимо получить доступ к словарю или метода get_paramA()
вы должны назвать его таким образом:
double part = Data.getInstance().get_paramA(car1, part1);
Так вы убедитесь, что вы всегда имеем дело с тем же object: в первый раз, когда вы его назовете, он создаст объект, а остальное время он вернет созданный объект удержанием внутреннего класса.
О последнем вопросе о добавлении нового парама, вы делаете это правильно, из-за парадигмы ООП каждый объект должен «выполнять свою работу», то есть возвращать и запрашивать необходимые методы других объектов (поэтому вы закончите с множеством «тупых» методов, которые возвращают частный параметр или вызовы того же метода другого объекта).
Я не очень хорошо знаю, что вы моделируете с этим классом Part
, но по мне это звучит родовое, возможно, с использованием inheritance
будет в порядке. Вы можете определить свой Part
класс как Abstract Class
, где вы определите общие методы для всех возможных объектов Part
, которые у вас есть, а затем вы можете extend
от этого класса и создать другие классы, такие как Whell
или Chasis
, где у них есть свои собственные переменные экземпляра.
Если вам нужна дополнительная информация, не стесняйтесь спрашивать снова и жаль, если я говорю что-то, что не совсем правильно.
Поздравления!