2009-12-13 6 views
1

종속성 주입을 처리 할 때 인터페이스를 구현하는 클래스로부터 객체를 상속받는 것이 합리적인지 궁금합니다. 예제C# 의존성 주입 샘플

public interface IPeople 
    { 
     string Name { get; set; } 
     int Age { get; set; } 
     string LastName { get; set; } 

    } 

public class CPeople : IPeople 
    {..implemented IPeople Methods..} 

이 방법은 한 곳에서만 인터페이스를 구현하면됩니다. 이것이 loosly coupled로 간주 될지 확실하지 않습니다.

public class Dad : CPeople 
    { 
    } 



public class Mom : CPeople 
    { 
    } 

그래서 내 컨트롤러 안에는

public class Parent 

{ 

    IPeople objMom; 
    IPeople objDad; 
    Parents m_Parent; 

    public void factoryMethod() 
    { 

     objMom = new Mom(); 
     objMom.Age = 32; 
     objMom.Name = "Jane"; 
     objMom.LastName = "Doe"; 

     objDad = new Dad(); 
     objDad.Age = 25; 
     objDad.Name = "John"; 
     objDad.LastName = "Doe"; 

     m_Parent = new Parents(objMom,objDad); 

    } 
    public override string ToString() 
    {      
     return m_Parent.Mom.Name + " " + m_Parent.Mom.LastName + " is " + m_Parent.Mom.Age + " years of age, " + m_Parent.Dad.Name + " " + m_Parent.Dad.LastName + " aged " + m_Parent.Dad.Age.ToString(); 
    } 
+13

제발, C#에서 헝가리어 표기법을 사용하지 마십시오. 모든 것이 클래스와 객체이기 때문에 그것은 이해가되지 않습니다. 단지 그것을 보려고 상처를줍니다. – Konamiman

+0

엄마와 아빠 클래스가 동일하다면 두 클래스가 왜 서로 다른 두 클래스를 작성해야합니까? 당신은 bool/enum을 가진 하나의 클래스가 그것이 어머니인지 아버지인지를 말함으로써 동일하게 성취 할 수 있습니다. 어쩌면 당신의 모범이 너무 단순 해 의미있는 것일까? –

+1

@ Konamiman : 헝가리 표기법이 유용 할 때가 있습니다 (헝가리 대 시스템 헝가리 - http://en.wikipedia.org/wiki/Hungarian_notation#Systems_vs._Apps_Hungarian). 나는 이것이 그들 중 하나가 아니지만 동의한다. –

답변

2

예,이 느슨하게 결합 된 것으로 간주 할 것이다.

엄마/아빠가 분리되어 있다고 생각하면 부모가 IMom과 IDad인지 확인하기 위해 인터페이스를 구현할 수 있습니다 (비어있는 경우에도 해당).

관련 문제