У меня есть два дизайна на выбор при разработке классов контента для моего человека в игре.Я хочу знать, какой из них будет работать лучше с точки зрения скорости, производительности и использования в массовом коде.
В основном, разница в том, что дизайн 1 будет содержать временный экземпляр человека, тогда как дизайн 2 не будет.
Редактировать: Пожалуйста, имейте в виду, что в этом проекте есть до ста классов, таких как VehicleContent , с которыми приходится иметь дело одному экземпляру.
Дизайн 1:
внешнее использование:
Person person = new Person();
person.init();
person.vehicle.setModel("Toyota");
Класс человека для дизайна 1:
public final class Person {
private VehicleContent vehicle;
public void init() {
vehicle.setPerson(this);
}
public void say(String say) {
System.out.println(toString() + " said: " + say);
}
}
Вот класс автомобиля длядизайн 1:
public final class VehicleContent {
private transient Person person;
private String model;
public void setPerson(Person p) {
this.person = p;
}
public void setModel(String model) {
this.model = model;
person.say("You set the model of your car to: " + model);
}
}
дизайн 2:
внешнее использование:
Person person = new Person();
person.vehicle.setModel("Toyota", person);
класс персонажа для дизайна 2:
public final class Person {
private VehicleContent vehicle;
public void init() {
//nothing here, doesn't need to be called!
}
public void say(String say) {
System.out.println(toString() + " said: " + say);
}
}
Вот класс транспортных средств для дизайна 2:
public final class VehicleContent {
private String model;
public void setModel(String model, Person person) {
this.model = model;
person.say("You set the model of your car to: " + model);
}
}
При ответе, пожалуйста, имейте в виду, что полный проект будет иметь около ста классов, таких как vehicleContent сохранено в экземпляре человека.
Это хорошая идея, чтобы сохранить временный тип человека вкласс как vehicleContent ?Где человек будет вызван для многих методов в классе.