2011-12-13 4 views
0

누군가가이 문제를 해결할 수 있습니까? Customer 클래스에 addCustomer() 함수가있는 이유를 알 수 없습니다.UML 클래스 작업

Customer 개체에 새로운 Customer 개체를 만들려면 어떻게해야합니까? 예는 다음과 같습니다.

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

나는 2 개의 속성 만있을 때 새로운 고객의 obejct는 어디에 저장됩니까?

+1

나머지 세부 사항이 없으면 UML 문서의 작성자가 왜 그런 짓을했는지 말할 수 없습니다. –

+0

왜, 실제로? .... – duffymo

답변

0

편집 : 아래 Alexander Pavlov의 다음 의견 (감사)이 업데이트되었습니다.

대부분의 경우 공장 방법입니다. 따라서 인스턴스 기반이 아닌 클래스 기반 작업입니다. 클래스 기반 작업 (예 : 생성자/팩토리) 및 인스턴스 기반 작업이 모두 클래스 서명에서 선언되는 java/C#/etc와 같습니다.

Java와 마찬가지로 createCustomer() 작업은 인스턴스에서 호출되지 않습니다. 예 : 클래스 기반의 작전은 예를 기반 작전에서 그들을 구별 할 수있는 '$'기호로 시작 UML의 규칙이있을 사용

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

(의사). 그러나 iirc는 UML 사양에 위임되지 않은 컨벤션이었습니다. (지금 확인하기위한 사양에 쉽게 액세스 할 수는 없습니다).

hth.

+1

이것은 생성자 (팩토리 메서드에서 호출 할 수 있음)보다는 팩토리 메서드라고합니다. http://www.javapractices.com/topic/TopicAction.do?Id=21은 팩토리 메소드에서 가장 많이 검색되는 Java 관련 결과입니다. –

+0

@Alexander 좋은 지적. 그것은 여전히 ​​클래스의 정적 메서드입니다 - 그래서 대답은 여전히 ​​정확합니다. 그래도 업데이 트됩니다. – sfinnie

관련 문제