Konuyu Oyla:
  • Derecelendirme: 4.67/5 - 3 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Dynamic Method Invoke
#11
@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.

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   Shy
WWW
Cevapla




Konuyu Okuyanlar: 1 Ziyaretçi