Операции класса UML - PullRequest
       0

Операции класса UML

0 голосов
/ 14 декабря 2011

Может кто-нибудь помочь мне с этой проблемой, я не знаю, почему в классе Customer есть функция addCustomer().

Как можно создать новый объект Customer в Customerобъект?Пример выглядит следующим образом:

-------------------
Class Customer     
-------------------
+forename        
+lastname
-------------------
+createCustomer()
-------------------

Я имею в виду, где хранится новый объект Customer, когда есть только эти 2 атрибута?

1 Ответ

0 голосов
/ 14 декабря 2011

РЕДАКТИРОВАТЬ: обновлен следующий комментарий от Александра Павлова ниже (спасибо).

Скорее всего, это фабричный метод. Так что это операция на основе классов, а не на основе экземпляров. Так же, как в java / c # / etc, где в подписи класса объявляются операции на основе классов (например, конструктор / фабрика) и операции на основе экземпляров.

Как и в случае с Java и т. Д., Операция createCustomer() не будет вызываться для экземпляра. например (Псевдокод)

Customer customer1 = Customer.createCustomer();
Customer customer2 = Customer.createCustomer();
customer1.forename = "Jon";
customer1.surname  = "Skeet";
//etc.

Раньше в UML существовало соглашение о том, что операции на основе классов начинаются с символа '$', чтобы отличать их от операций на основе экземпляров. Тем не менее, iirc, это было просто соглашение, не предусмотренное спецификацией UML. (сейчас нет простого доступа к спецификации, чтобы проверить).

НТН.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...