UML类操作

时间:2011-12-13 20:42:46

标签: uml

有人可以帮我解决这个问题,我不知道为什么addCustomer()类中有Customer函数。

如何在Customer对象中创建新的Customer对象?示例如下:

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

我的意思是当只有那两个属性时,存储了新的Customer obejct在哪里?

1 个答案:

答案 0 :(得分:0)

编辑:更新以下Alexander Pavlov的评论(谢谢)。

很可能是工厂方法。所以它是基于类的操作而不是基于实例的操作。就像在java / c#/ etc中一样,基于类的操作(例如构造函数/工厂)和基于实例的操作都在类签名中声明。

与java等一样,不会在实例上调用createCustomer()操作。例如(伪代码)

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

UML中曾经有一种惯例,即基于类的操作以'$'符号开头,以区别于基于实例的操作。但是,iirc,它只是一个惯例,没有在UML规范中强制要求。 (目前无法轻松访问规范进行检查)。

第h