public class InventorySetDAO{
public LinkedList<CustomInventory> inventories = new LinkedList<>();
}
Я разрабатываю плагин, который добавляет / удаляет данные в arraylist. и слишком много ссылок на arrayList из другого класса.
Класс InventoryItemModifier:
public class InventoryItemModifier {
InventorySetDAO inventorySetDAO;
public InventoryItemModifier(InventorySetDAO inventorySetDAO){
this.inventorySetDAO = inventorySetDAO;
}
public void addItem(ItemStack itemStack, ClickAction click, RequiredItems requiredItems) {
Bukkit.getPluginManager().callEvent(new ItemAddedEvent());
inventorySetDAO.getLastInventory().addItem(itemStack, click, requiredItems);
}
public void removeItem(ItemStack itemStack){
Bukkit.getPluginManager().callEvent(new ItemRemovedEvent());
inventorySetDAO.getLastInventory().removeItem(itemStack);
}
}
Класс InventoryPlayerAccessor:
public class InventoryPlayerAccessor {
InventorySetDAO inventorySetDAO;
public boolean openPage(Player player) {
if (!inventories.isEmpty()) {
inventories.get(0).openInventory(player);
return true;
}
return false;
}
public boolean openPage(Player player, int index) {
if (!inventories.isEmpty()) {
if (index >= 0 && index < inventories.size()) {
inventories.get(index).openInventory(player);
return true;
}
}
return false;
}
}
Я думаю, что существует риск неуместного манипулирования arrayList, поэтому я думаю, что arrayList должен быть в классе и предоставлять методы (add / insert / remove ...), но если в этом классе слишком много обязанностей.
Я пытался разделить их на несколько классов, но, похоже, эта проблема не решается. Есть ли способ уменьшить зависимость от arrayList или эффективный способ инкапсуляции arrayList?