Duck Typing v Delphi

vložil Radek Červinka 8. května 2012 22:14

Duck Typing je populární styl programování. Ačkoliv si o tom myslím svoje, tak mi to nebrání abych neodkazoval na implementaci Duck Typing v Delphi.

DuckDuckDelphi (případně duckduckdelphi na google code) je knihovna pod MIT licencí a umožňuje používat Duck Typing v Delphi.

Např. můžete napsat místo (ukázky jsou přímo z webu autora)

if AObject is TEdit then 
  TEdit(AObject).visible := False; 

tohle
if AObject.duck.has('visible') then 
  AObject.duck.sett('visible', False);

nebo

Form1.duck.all.has('visible').sett(false);

což u všech komponent, které mají visible nastaví Visible := False;

Čím samozřejmě možnosti zdaleka nekončí.

Cílem je verze XE2, ale pravděpodobně budou fungovat i starší verze s rozšířenou podporou RTTI (tj. 2010+). I když jsem se nedíval jak je to dělané, tak mi to přijde jako typické použití Class Helperu - což čím dál více považuji za nádherné rozšíření jazyka.

Osobně mi to připadá jako úkrok stranou, kdy se snažíme obcházet kontrolu kompilátoru, ale proti gustu… Jaký na to máte názor vy?


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: ,

Komponenty

Komentáře

9.5.2012 9:48:43 #

JaroB

Podle mě všechno, co identifikuje ve výkoném (kompilovaném) kódu metody nebo property řetězcem, je v Delphi potenciáně nebezpečné a vyžaduje režii navíc - větší kontrolu případně dodatečný error handling. Na druhou stranu se to blíží spíš pojetí jistých interpreterů, třeba s myšlenkou, že je možné někde "vespod" vyměnit motor za nějaký JIT kompilátor nebo JS-like stroječek...Kdysi jsem se s tím setkal v různých verzích Basicu, kdy interpretovaný kód dokázal sám sebe snadno poupravovat díky tomu, že měl přístup do bufferu kódu a hlavně, bylo to v textové formě. Je na diskuzi, jak má vypadat robusní kompilovaný kód a jak interpretovaný pseudokód. Hranice může být dost rozmazaná a taky dost pružná a záleží na momentálním postoji, řešeném problému a úhlu pohledu toho kterého vývojáře.

JaroB

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS