2009-03-09 7 views
1

나는 약간의 설계 논의가 진행 중이다. 간단한 단어로 나누려면 계층 구조에 대해 생각하십시오. 회사 ----- 고객 ------> 주문 (주문 상품 등의 세부 정보 무시) 이 작업을 수행하는 API는 더 나은 디자인이 될 것입니다.더 나은 디자인이란 무엇입니까?

A)

Dim comp As New Company 
comp.GetInfo(123) 
Dim cust As New Customer 
cust.Name= "CustomerName" 
comp.Add(cust) 

b)는 객체를 사용해야 ID를 사용

Dim custhand As Customerhandler 
Dim cust As New Customer 
cust.Name= "CustomerName" 
custhand.AddCustomer(cust,123) ''123 is CompanyID 

답변

1

A. 나쁜 생각입니다.

1

둘 중 하나를 선택하면 A를 선택하고 CustomerHandler를 추가하면 지나치게 복잡해 보입니다. 회사 또는 고객이 고객을 회사에 추가하는 방법을 알고 있어야합니다.

0

필자는 가장 직접적인 첫 번째 방법을 선호합니다. 회사 개체를 만들고 여기에 고객을 추가합니다. 말이된다.

두 번째 방법은 상황을 이해하기 어렵고 절차가 더 복잡 해지는 "개체"를 도입합니다.

0

A. cust 개체에는 ID가 포함되어 있어야하며 별도로 포함되어서는 안됩니다.

Customer.AddCustomer(string, int) 과부하가 발생하여 새 고객이 특정 이름과 ID를 갖게되지만 정보를 저장하는 방법에 따라 달라질 수 있습니다.

8

내가 (A)로 가고 싶어하지만 변화하는 경향 거라고 ...에

Dim comp As New Company 
comp.GetInfo(123) 

...

Dim comp As Company = Company.Get(123) 

(그래서에 새로운 공유 방법을 추가 회사의 특정 인스턴스를 반환하는 회사 클래스)

+0

아, 당신이 나를 때려 : P +1 – rmeador

+0

이점은 여기에, 분명하지 않은 경우, 당신은 결코 (즉, 언로 드) 회사 개체를 발로 차있다 약. GetInfo() 함수를 호출하는 것을 잊지 마십시오. – rmeador

+0

+1 팩토리 패턴 사용 –