Junior — Middle
144
Jak lze rozšířit funkčnost třídy zakázané pro změny přidáním seznamu dat?
Společnosti byly požádány
Odpověď od AI
sobes.tech AI
Если класс нельзя изменять напрямую (например, он из сторонней библиотеки), но нужно добавить к нему данные, можно использовать паттерн "обёртка" (Wrapper) или композицию.
Другой способ — использовать Map (например, HashMap) для хранения дополнительных данных, где ключом будет объект класса, а значением — нужные данные.
Также в Java 8+ можно использовать default методы в интерфейсах для расширения функциональности, но это не добавляет состояние.
Пример с использованием Map:
class ExternalClass {
// Класс, который нельзя менять
}
class ExternalClassData {
private static Map<ExternalClass, String> extraData = new HashMap<>();
public static void setData(ExternalClass obj, String data) {
extraData.put(obj, data);
}
public static String getData(ExternalClass obj) {
return extraData.get(obj);
}
}
Таким образом, можно "расширить" класс, не меняя его код.