Link z bloku kodu do operacji (Link Code To Operation)
Dzięki temu elementowi modelu można łączyć blok kodu (Code Block) z operacją (Operation). Element jest bardzo podobny do opisywanego w poprzednim poście elementu Link Code to Function.
Element ten podobnie jak połączenie do luźnej funkcji jest przydatny, gdy użytkownik chce bardziej uszczegółowić model.
Na poniższym rysunku 1 przedstawione jest przykładowe połączenie Link to operation między blokiem kodu Code Block a jedną z dwóch operacji w typie. Operacja nazywa się Operation1 i jest ona metodą w tej klasie.
Wygenerowany fragment kodu źródłowego dla powyższego przykładu wygląda tak jak na listingu 1. Widać w nim, że metoda Operation1 ma uzupełnioną definicję zgodnie z tym, co jest w bloku, z kodem źródłowym.
type TypeClassElement () = do //to do member this.Operation1 x y = x * y member this.Operation2 =
Listing 1: Wygenerowany fragment kodu źródÅ‚owego dla elementu Å‚Ä…czÄ…cego blok kodu z operacjÄ… — wersja 1
W następnym przykładzie przedstawionym na rysunku 2 można zauważyć dwa różne bloki kodu, które są połączone do dwóch operacji. Dla każdej tworzonej operacji dla elementu Type możemy tworzyć relacje z bloków z kodem źródłowym. Operacje, które są wyłącznie metodami, będą w stanie w ciele swoich metod skorzystać z kodu źródłowego umieszczonego w elementach Code Block. Można powiązać bloki kodów z operacjami, które są właściwościami, lecz na nic to nie wpłynie podczas transformowania modelu na kod źródłowy. W kolejnych wersjach wtyczki można pomyśleć nad wykorzystaniem połączenia bloku kodu z operacją, która jest właściwością.
Z tak zamodelowanego przykładu jak przedstawiony wyżej otrzymuje się kod źródłowy jak z listingu 2. Obydwie metody mają uzupełnioną definicję.
type TypeClassElement () = do //to do member this.Operation1 x y = x * y member this.Operation2 a h = 0.5 * a * h
Listing 2: Wygenerowany fragment kodu źródÅ‚owego dla elementu Å‚Ä…czÄ…cego blok kodu z operacjÄ… – wersja 2
W ostatnim przykładzie jak z rysunku 3 można zobaczyć, że dany blok kodu można łączyć wieloma relacjami z różnymi operacjami. Bardzo rzadko znajduje się zastosowanie takiej funkcjonalności, ale, jak widać na poniższym przykładzie, jest to możliwe.
Z tak sformułowanego modelu można otrzymać poniższy kod źródłowy (listing 3).
type TypeClassElement () = do //to do member this.Operation1 x y = //the same source code member this.Operation2 a h = //the same source code
Listing 3: Wygenerowany fragment kodu źródÅ‚owego dla elementu Å‚Ä…czÄ…cego blok kodu z operacjÄ… – wersja 3
Thanks for the share!
Nancy.R