フィールドに注釈を付けるだけで、このように Delphi でコーディングできるようになりたいと思っています。
type
TMyClass = class
private
[Inject]
Factory: ISomeFactory;
...
end;
またはセッターを属性にすることによって
type
TMyClass = class
private
FFactory: ISomeFactory;
[Inject]
procedure SetFactory(const AFactory: ISomeFactory);
...
public
property Factory: ISomeFactory read FFactory write SetFactory;
end;
背景: 私は古いコードをサービス指向アーキテクチャに移行しており、サービス層を参照すると常に次のような構造になることがわかりました。
DataModule1.ServiceLayerInstance1.SubSystemN.InvokeSomething(Params, ...);
のようにはるかに短くなる可能性があります
type
Form1 = class(TForm1)
private
[Inject]
SubsystemN: ISubsystemN;
...
end;
...
SubsystemN.InvokeSomething(Params, ...);