Dizi Diyagramı: Aktörler nesne midir?


12

En olası cevap hayır, ama bu şüpheyle geldim. Bir aktör sınıf olarak hareket edebilir mi?

Aktörlerin olayları tetiklediğini ve istemleri olabileceğini biliyorum, ancak bir aktörü (örneğin bir kullanıcı sınıfı gibi) modelleyen bir sınıf varsa, bunların üzerinde yöntemler çağırabilir miyiz? Yoksa bu, temsilci sınıfla karışan aktör rolünün tam bir yanlış anlaşılması mı?

Doğru olması gerekiyordu:

Varsayılan Doğru Örnek

Doğruysa şüphe edin:

resim açıklamasını buraya girin

Yanıtlar:


8

UML'de, bir Aktör her zaman oluşturduğunuz sistemin / yazılımın kapsamı dışında olan bir şeydir (bir sistem veya kişi) . Bir aktörü sisteminizdeki aktörün belirli yönlerini modellemek için gerçekleşen bir sınıf örneği / nesnesiyle eşitlemek tamamen yanlış olur.

Gösterilen UML diyagramlarında, "Kullanıcı" aktörü (çubuk şekli simgesiyle), sisteminizi çalıştıran gerçek dünyadaki insanı temsil eder. Sınıf User, o kişinin sizin için alakalı özellikleri yakalayan bir modelini temsil eder. Bu sınıf yalnızca sisteminizde bulunur.
Bu, sınıfın ve aktörün iki ayrı varlık olmasını sağlar ve diyagramlarınızda da böyle gösterilmelidir.


"Oyuncu her zaman inşa ettiğiniz sistemin / yazılımın kapsamı dışında kalan bir şeydir." Yine de aktör, çağrı yığınını başlatarak bir Sınıf nesnesiyle doğrudan etkileşime girer. Bu nedenle bir şekilde sistemin bir parçasıdır (büyük olasılıkla sınıf diyagramı tarafından modellenmemiş bir UI katmanından başka bir keyfi sınıf tarafından temsil edilir). Bu başlangıçta gerçekten mantıksız görünüyor ve muhtemelen bazı insanlar için kafa karışıklığı kaynağı.
dvdblk

Aktör ayrı bir varlıktır. Aktör, sistem olmasa bile var. Aktör, sistemi başlatır, kapatır ve hatta sisteme girdi sağlar ancak Sistemin herhangi bir görevini gerçekleştirmek için yazılım sisteminin içinde oturmaz. Sistem aktörden bağımsız çalışır. Nesneler gerçek dünya aktörlerini simüle edebilir, ancak yine de başlangıç ​​veya çıkış için doğrudan veya dolaylı olarak insan aktörlerine bağımlıdır.
user2994783
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.