12-09-2020, Saat: 22:40
@Fesih ARSLAN hocam,
Yukarıda datasnap için, Remote Method Invocation örneği vermiştim.
Basitçe, TServerMethods1 sınıfı içinde aşağıdaki şekilde methodların olduğunu düşünelim.
Aşağıdaki formatta, http isteği ile yukarıdaki methodları çağırıp sonuç döndürebiliyoruz.Başka da bir şey yapmıyoruz.
http://host:port/datasnap/rest/[ClassName]/[MethodName]
http://host:port/datasnap/rest/TServerMethods1/Method1
Örneğin; TServerMethods1 sınıfının hafızada yer ayrım ve serbest bırakma işlemini, TServerMethods1 sınıfındaki methodlarının çağırımını (hardcoded) bir şekilde kodun içinde bir yerlerde görmüyoruz.Bu işleri Delphi bizim yerimize dinamik bir şekilde gerçekleştiriyor.
@uparlayan hocam'ın bahsettiği gibi birçok yerde kullanabilir.
Kullanım yeri, Datasnap, Front Controller Pattern ya da başka bir yer olabilir.
Olayın özü, dinamik olarak bir methodu çağırabilmek
Yukarıda datasnap için, Remote Method Invocation örneği vermiştim.
Basitçe, TServerMethods1 sınıfı içinde aşağıdaki şekilde methodların olduğunu düşünelim.
function TServerMethods1.Method1(): string; begin Result := 'Method1'; end; function TServerMethods1.Method2(): string; begin Result := 'Method2'; end;
Aşağıdaki formatta, http isteği ile yukarıdaki methodları çağırıp sonuç döndürebiliyoruz.Başka da bir şey yapmıyoruz.
http://host:port/datasnap/rest/[ClassName]/[MethodName]
http://host:port/datasnap/rest/TServerMethods1/Method1
Örneğin; TServerMethods1 sınıfının hafızada yer ayrım ve serbest bırakma işlemini, TServerMethods1 sınıfındaki methodlarının çağırımını (hardcoded) bir şekilde kodun içinde bir yerlerde görmüyoruz.Bu işleri Delphi bizim yerimize dinamik bir şekilde gerçekleştiriyor.
@uparlayan hocam'ın bahsettiği gibi birçok yerde kullanabilir.
Kullanım yeri, Datasnap, Front Controller Pattern ya da başka bir yer olabilir.
Olayın özü, dinamik olarak bir methodu çağırabilmek

