====== Delphi - Публичные интерфейсы, на примере Spring.Container ====== program Demo; {$APPTYPE CONSOLE} uses Classes, Spring.Container, Spring.Container.Resolvers; type IUserUpgrader = interface ['{ADC36759-6E40-417D-B6F7-5DCADF8B9C07}'] end; TUser = class(TObject); TUserProcessor = class(TInterfacedObject, IUserUpgrader) public constructor Create(AUser: TUser); end; constructor TUserProcessor.Create(AUser: TUser); begin Writeln('called constructor with passed user'); end; begin GlobalContainer.RegisterType.Implements; GlobalContainer.Build; GlobalContainer.Resolve( TOrderedParametersOverride.Create([TUser.Create])); GlobalContainer.Resolve( TParameterOverride.Create('AUser', TUser.Create)); Readln; end.