2014-01-26 3 views
0

예를 들어 모델 클래스를 전달하는 것이 좋습니다. DAL은 '정보 모델'과 같은 스레드 서비스 클래스에 속합니까?모델/엔티티 클래스를 사용하여 스레드 된 인스턴스 클래스를 만드는 방법은 무엇입니까?

예 :이 예 CarModel는 엔티티라는 가정하에 이루어진다

public class CarModel { 

    public string Name     { get; set; } 
    public int AmountOfWheels  { get; set; } 
    public Engine EngineDescription { get; set; } 

} 

public class Car { 

    public CarModel CarModel  { get; set; } 

    public Car(CarModel model) { 
     this.CarModel = model; 

     Thread.Start(BrummBrumm); 
    } 

    private void BrummBrumm() { 
     // start the car 
    } 

} 

(예 엔티티 프레임 워크 또는 다른 저장소/DAL과 함께 사용하는) UI, WebApi으로 사용하거나 모델 클래스 WCF ..와 Car는 예를 들어 구현시 존재하는 클래스입니다. Windows 서비스.

편집 더 코드

public class CarManager { 

    public List<Car> Cars = new List<Car>(); 

    public void Add(CarModel model) { 
     this.Cars.Add(new Car(model)); 
    } 

    public void Remove(int id) { 
     ... 
    } 

} 

... 다음 위의 예와 함께 무엇입니까? 자동차뿐 아니라 오토바이도 갖고 있다면 어떨까요? 위 예제는 많은 상용구 코드를 생성하지 않을까요?

+0

이 경우 전략 패턴이 도움이 될 수 있습니다. http://stackoverflow.com/questions/3449634/how-to-use-the-strategy-pattern-with-c –

답변

0

데이터를 서비스로/서비스로 전송하는 동안 DTO를 사용하는 것이 가장 좋습니다. 또한 DTO를 비즈니스 오브젝트와 맵핑하는 데 필요한 코드를 줄이는 도구도 있습니다. 개인적으로 Automapper를 사용합니다.

당신은 DTO의 위로 읽고 싶은 단지 경우에 좋은 기사가있다 - Pros and Cons of Data Transfer Objects

그러나 솔루션은 작고 성장 안되고, 당신의 서비스는 공개적으로 그냥 함께 갈 수 있습니다 노출하지 않는 경우 과도한 디자인을 피하기 위해 비즈니스 객체.

희망이 있습니다.

+0

@Acrotygma 안녕하세요. 내 대답에 대한 의견, 그냥 당신에게 도움이 되었다면 궁금해? 그렇지 않다면 당신의 질문에 당신을 도울 수있는 일이 있습니까? –

관련 문제