2015-01-25 40 views
9

W diagramie klasy UML, jeśli klasa ma 5 prywatnych atrybutów, które muszą być zmienne i czytelne, UML staje się dość brzydki z 10 metodami get/set, nawet bez żadnego od klasy ciekawej funkcjonalności:Skrót do oznaczania lub przypisywania pobierających i ustawiających w diagramach klas UML

Bloated

Brzydota na bok, czuję się jak w UML powinny koncentrować się na klasy bardziej interesującą funkcjonalnością. Mam rację?

Czy istnieje jakiś standardowy skrót do oznaczania lub sugerowania obiektów pobierających i ustawiających dla atrybutów prywatnych?

+1

Jeśli nie chcesz modelować niezbyt interesującej funkcji, możesz po prostu całkowicie pozbyć się modułów pobierających/ustawiających i modelować właściwości jako proste atrybuty. Wypełnij tylko komorę atrybutów górnych i pozostaw pustą przestrzeń operacyjną. W niektórych językach (np. 'C#', 'Delphi') programy pobierające/ustawiające są i tak prawie niewidoczne dla programisty. Uważam, że nie należy przenosić żadnej odpowiedzialności na _UML_ ("_Object Management Group (OMG) to konsorcjum standardów technologii non-profit ..._") i skupić się na odpowiedzialności po twojej stronie klawiatury. Mam rację? – xmojmr

Odpowiedz

9

Masz rację: nie ma potrzeby dołączania sygnatur standardowych ("noise of)" wzorców "standardowych setterów i modułów pobierających w modelu klasy. Niestety UML nie definiuje standardowej notacji dla imptingu pobierających i ustawiających dla atrybutów prywatnych. Więc musisz użyć własnej konwencji. Na przykład możesz dołączyć ogólne wyjaśnienie (że wszystkie prywatne właściwości mają obiekty pobierające i ustawiające, podczas gdy prywatne właściwości tylko do odczytu mają tylko pobierające wartości) jako komentarz UML Komentarz, pokazany jako prostokąt z wygiętym górnym prawym rogiem (nazywanym również "Symbol notatki") dołączony do diagramu.

Jeśli wolisz zrobić konwencję getter/setter bardziej wyraźną dla właściwości, których dotyczy, wtedy twórz własne stereotypy (np. «Get/set» i «get»), które będą używane do kategoryzacji tych prywatnych właściwości, jak pokazano w następującym schemacie:

Class with get/set attribute stereotypes

Używam również ten opisujący/dokumentowania ukryte pobierające i ustawiające z ECMAScript 6 klas.

+0

fajny pomysł, który powinien być częścią umla 3.0 (?) :) –

2

UML nie definiuje operacji ustawiania gettera. Metoda Get and Set jest używana w językach programowania do realizacji definicji atrybutu. Na przykład atrybut readonly będzie miał metodę getter tylko w kodzie implementacji. jeśli atrybut jest zdefiniowany jako obliczony, metoda getter jest zwykle używana w kodzie do implementacji obliczeń, a seter może zostać pominięty, ponieważ atrybuty obliczeniowe są zwykle tylko do odczytu. Widoczność atrybutu jest zwykle przenoszona również na widoczność do metod gettera i setera w kodzie. Nie ma sensu definiowanie metod geter i setter w kodzie dla zdefiniowanych atrybutów write write, a nie obliczonych.