2013-03-08 3 views
2

양식 A와 양식 B 두 가지가 있습니다.이 정보는 XML 파일에 정보를 입력하는 데 사용됩니다. 이제이 두 형식은 기본적으로 동일한 메소드 (동일한 이름, 동일한 구현)를 호출해야합니다.동일한 방법을 구현하는 양식

양식 A와 양식 B가 이미 System.Windows.Forms.Form에서 상속되므로이 컨텍스트에서 기본 클래스를 사용할 수 없습니다. 이 두 형식이 구현할 인터페이스를 사용해야합니까? 나는 그들이 필요로하는 방법이 동일하기 때문에 이것이 최선의 접근 방법이 될지 의심 스럽다.

더 나은 접근 방식을 제안 해 주시겠습니까?

감사합니다.

답변

1

코드 재사용과 이후의 "DRY"원칙에 따라 코드 중복을 피하기 위해 "추출 클래스"를 다시 작성해야합니다.

위의 문장이 평범한 용어로 그렇게 일반적으로 보일 경우 다른 형태로 다른 구현을하고 유틸리티 정적 클래스로 코드를 옮기고 싶지 않은 경우 완벽한 후보가되는 유틸리티 클래스를 만듭니다.

public static class Utility 
{ 
    public static void WriteToXML() 
    { 
     // come code here 
    } 
} 
1

프로젝트의 공통 기능이 저장된 클래스를 생성 할 수 있습니다. 어떤 형식 으로든 이러한 함수를 호출 할 수 있습니다.

namespace ProjectNameSpace 
{ 
    public class GenericFunctions 
    { 
     public static void WriteToXML() 
     { 
     // come code here 
     } 
    } 
} 
0

기본 양식을 도입 확실히 가능하다 A 형과 B 형 상속에서 : 다음 공통 코드는 어떤 UI 관련 물건을 포함하지 않는 경우 말했다

public partial class BaseForm : System.Windows.Forms.Form 
    { 
     public BaseForm() 
     { 
      InitializeComponent(); 
     } 

     public void CommonMethod() 
     { 

     } 
    } 


public partial class FormA : BaseForm 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void LocalMethod() 
    { 
     CommonMethod(); 
    } 


} 

public partial class FormB : BaseForm 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void LocalMethod() 
    { 
     CommonMethod(); 
    } 


} 

, @ Gian Acuna에는 정적 메서드로 별도의 클래스를 만들 수있는 정확한 대답이 있습니다.

관련 문제