Udostępnij za pośrednictwem


Wyznaczanie zakresu i widoczność definicji działania

Określenie zakresu i widoczność definicji działania, podobnie jak określanie zakresu i widoczność obiektu, to zdolność innych obiektów lub działań do uzyskiwania dostępu do elementów członkowskich działania. Definicja działania jest wykonywana przez następujące implementacje:

  1. Określanie elementów członkowskich (Argument, Variablei obiektów i ActivityDelegate działań podrzędnych) jest widoczne dla użytkowników.

  2. Implementowanie logiki wykonywania działania

Implementacja może obejmować członków, które nie są narażone na odbiorców działania, ale są raczej szczegółami implementacji. Podobnie jak w przypadku definicji typu, model działania umożliwia autorowi kwalifikowanie widoczności elementu członkowskiego działania w odniesieniu do definicji zdefiniowanego działania. Ta widoczność określa aspekty użycia elementów członkowskich, takie jak określanie zakresu danych.

Scope

Oprócz określania zakresu danych widoczność modelu aktywności może ograniczyć dostęp do innych aspektów działania, takich jak walidacja, debugowanie, śledzenie lub śledzenie. Właściwości wykonywania używają widoczności i określania zakresu właściwości wykonywania ograniczeń do określonego zakresu definicji. Pomocnicze katalogi głównych używają widoczności i określania zakresu, aby ograniczyć stan przechwycony przez CompensableActivity element do zakresu definicji, w którym są używane działania, które można skompensować.

Definicja i użycie

Przepływ pracy jest pisany przez tworzenie nowych działań przez dziedziczenie po klasach działań podstawowych i przy użyciu działań z wbudowanej biblioteki działań. Aby można było użyć działania, autor działania musi skonfigurować widoczność każdego składnika jego definicji.

Członkowie działań

Model działania definiuje argumenty, zmienne, delegaty i działania podrzędne udostępniane użytkownikom przez działanie. Każdy z tych członków można zadeklarować jako public lub private. Publiczne elementy członkowskie są konfigurowane przez użytkownika działania, podczas gdy private członkowie używają implementacji ustalonej przez autora działania. Reguły widoczności dla określania zakresu danych są następujące:

  1. Członkowie publiczni i publiczni członkowie publicznych działań podrzędnych mogą odwoływać się do zmiennych publicznych.

  2. Prywatne elementy członkowskie i publiczne elementy członkowskie publicznych działań podrzędnych mogą odwoływać się do argumentów i zmiennych prywatnych.

Element członkowski, który może być ustawiony przez konsumenta działania, nigdy nie powinien być prywatny.

Tworzenie modeli

Działania niestandardowe są definiowane przy użyciu funkcji NativeActivity, , ActivityCodeActivitylub AsyncCodeActivity. Działania pochodzące z tych klas mogą uwidaczniać różne typy składowych z różnymi wizjerami.

Nativeactivity

Działania pochodzące z NativeActivity działania mają zachowanie napisane w kodzie imperatywnego i można je opcjonalnie zdefiniować przy użyciu istniejących działań. Wyprowadzanie działań z NativeActivity przyznawania dostępu do wszystkich funkcji uwidocznionych przez środowisko uruchomieniowe. Dowolny element członkowski takiego działania można zdefiniować przy użyciu widoczności publicznej lub prywatnej, z wyjątkiem argumentów, które można zadeklarować tylko jako public.

Elementy członkowskie klas pochodnych są NativeActivity deklarowane do środowiska uruchomieniowego przy użyciu NativeActivityMetadata struktury przekazanej CacheMetadata do metody .

Działanie

Działania utworzone przy użyciu mają Activity zachowanie, które zostało zaprojektowane ściśle przez tworzenie innych działań. Klasa Activity ma jedno działanie podrzędne implementacji uzyskane przez środowisko uruchomieniowe przy użyciu polecenia Implementation. Działanie pochodzące z Activity klasy może definiować argumenty publiczne, zmienne publiczne, zaimportowane działaniaDelegates i zaimportowane działania.

Zaimportowane działaniaDelegates i Działania są deklarowane jako publiczne elementy podrzędne działania, ale nie mogą być bezpośrednio zaplanowane przez działanie. Te informacje są używane podczas walidacji, aby uniknąć uruchamiania weryfikacji na poziomie nadrzędnym w lokalizacjach, w których działanie nigdy nie zostanie wykonane. Ponadto zaimportowane elementy podrzędne, podobnie jak publiczne dzieci, mogą być przywołyne i zaplanowane przez implementację działania. Oznacza to, że działanie, które importuje działanie o nazwie Activity1, może zawierać Sequence element w jego implementacji, który planuje działanie Activity1.

CodeActivity/ AsyncCodeActivity

Ta klasa bazowa jest używana do tworzenia zachowania w kodzie imperatywnego. Działania pochodzące z tej klasy mają dostęp tylko do uwidacznianych argumentów. Oznacza to, że jedynymi elementami członkowskimi, które te działania mogą uwidocznić, są argumenty publiczne. Do tych działań nie mają zastosowania żadne inne elementy członkowskie ani niewiążące.

Podsumowanie wizji

Poniższa tabela zawiera podsumowanie informacji we wcześniejszej części tej sekcji.

Typ elementu członkowskiego Nativeactivity Działanie CodeActivity/ AsyncCodeActivity
Argumenty Publiczna/prywatna Publiczne nie dotyczy
Zmienne Publiczna/prywatna Publiczne nie dotyczy
Działania podrzędne Publiczna/prywatna Publiczny, jeden stały prywatny element podrzędny zdefiniowany w implementacji. nie dotyczy
ActivityDelegates Publiczna/prywatna Publiczne nie dotyczy

Ogólnie rzecz biorąc, członek, którego nie można ustawić przez konsumenta działalności, nie powinien być upubliczniony.

Właściwości wykonania

W niektórych scenariuszach warto ograniczyć zakres określonej właściwości wykonywania do publicznych elementów podrzędnych działania. Kolekcja ExecutionProperties zapewnia tę możliwość za pomocą Add metody . Ta metoda ma parametr logiczny wskazujący, czy określona właściwość jest ograniczona do wszystkich elementów podrzędnych, czy tylko tych, które są publiczne. Jeśli ten parametr ma wartość true, właściwość będzie widoczna tylko dla publicznych członków i publicznych członków ich publicznych elementów podrzędnych.

Pomocnicze korzenie

Pomocniczy katalog główny to wewnętrzny mechanizm środowiska uruchomieniowego do zarządzania stanem działań odszkodowawczych. Po zakończeniu CompensableActivity działania jego stan nie jest natychmiast czyszczony. Zamiast tego stan jest utrzymywany przez środowisko uruchomieniowe w pomocniczym katalogu głównym do momentu ukończenia odcinka rekompensaty. Środowiska lokalizacji przechwycone z pomocniczym katalogiem głównym odpowiadają zakresowi definicji, w którym jest używane działanie Compensable.