Kötési tulajdonságok (informatika)A kötési tulajdonságok az informatikában egy konkurens programtervezési minta, ami azt jelenti, hogy több megfigyelőt kombinálnak ahhoz, hogy biztosítsák különböző objektumok tulajdonságainak szinkronizálását, vagy koordinálását. Ezt a technikát először Victor Porton írta le.[1][2] Összehasonlítás az aspektusorientált programozássalAz aspektusorientált programozás kölcsönös tulajdonságainak alternatívájaként javasoltak a kötési tulajdonságok. A LibPropC++ C++ könyvtár tartalmazza.[3] A LibPropC++ gyengeségei a kötési tulajdonságokkal:
MegvalósításaKétféle kötési tulajdonsága van, az egyirányú és a kétirányú. Egyirányút csak akkor szabad használni, ha az egyik tulajdonság csak olvasható, egyébként a kétirányút kell.[2][3] A végtelen ciklusokat a jel blokkolásával, vagy az új és a régi értékek összehasonlításával, esetleg a fölösleges értékadások kiiktatásával lehet elkerülni.[2][3] Különböző típusok között típuskonverzióval lehet kötési tulajdonságokat létrehozni. Ha transzformációkra van szükség, akkor a transzformációkat típuskonverzióként kell kezelni.[2][3] EredménykontextusA tulajdonságok automatikusan szinkronizálódnak. A könyvtári hívások között az EqualityConstraints invariánsban megadott feltételeknek kell megfelelniük. A változások követése erőforrásokat igényel. Példa kódokEgyirányú kötés: bind_multiple_one_way(src_obj, src_prop, dst_objs[], dst_props[])
{
for (i, j) in (dst_objs, dst_props)
{
bind_properties_one_way(src_obj, src_prop, i, j);
}
}
Kétirányú kötés (C++-ban): // In this pseudo-code are not taken into the account initial values assignments
bind_two_way(prop1, prop2)
{
bind(prop1, prop2);
bind(prop2, prop1);
}
A kötés megvalósítása: on_property_change(src_prop, dst_prop)
{
block_signal(src_obj, on_property_change);
dst_prop := src_prop;
unblock_signal(src_obj, on_property_change);
}
Jegyzetek
FordításEz a szócikk részben vagy egészben a Binding properties pattern című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként. Information related to Kötési tulajdonságok (informatika) |