Пример кода:
unit Foo;
TFoo = class
protected
FList: TList; // Lifetime is managed by constructor and destructor
public
property List: TList read FList;
constructor Create;
destructor Destroy; override;
end;
unit Bar;
TBar = class(TFoo)
procedure MyMethod;
end;
procedure TBar.MyMethod;
begin
// Access of FList goes here
end;
Класс TBar может напрямую изменять значение FList, но это не является строго необходимым, потому что ему нужно только вызывать свои методы / использовать его свойства.
Следует ли мне сделать FList закрытым и вместо этого использовать свойство для доступа к нему из TBar?
Как вы справляетесь с подобными случаями? Есть ли какие-нибудь соображения по поводу производительности?