У меня есть объект, который хранит некоторые данные в списке. Реализация может измениться позже, и я не хочу раскрывать внутреннюю реализацию конечному пользователю. Однако пользователь должен иметь возможность изменять и получать доступ к этому набору данных. В настоящее время у меня есть что-то вроде этого:
public List<SomeDataType> getData() {
return this.data;
}
public void setData(List<SomeDataType> data) {
this.data = data;
}
Означает ли это, что я позволил пропустить внутренние детали внедрения? Должен ли я делать это вместо этого?
public Collection<SomeDataType> getData() {
return this.data;
}
public void setData(Collection<SomeDataType> data) {
this.data = new ArrayList<SomeDataType>(data);
}