Visual Model For F# – Link z bloku kodu do operacji

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.

Link z bloku kodu do operacji -- wersja 1

Rysunek 1: Link z bloku kodu do operacji -- wersja 1

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ą.

Link z bloku kodu do operacji - wersja 2

Rysunek 2: Link z bloku kodu do operacji - wersja 2

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.

Link z bloku kodu do operacji -- wersja 3

Rysunek 3: Link z bloku kodu do operacji -- wersja 3

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

adamex

About Adam Bielasty

.NET Software Developer

One thought on “Visual Model For F# – Link z bloku kodu do operacji

  1. Thanks for the share!
    Nancy.R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *


9 − = 8

Możesz użyć następujących tagów oraz atrybutów HTML-a:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>