2016-07-04 2 views
0

디자이너 (호출자는 ConfigurationBuilder)와 실행자 (호출자는 ConfigurationExecutor)의 2 부분 (2 별도의 응용 프로그램)이있는 응용 프로그램이 있습니다.조건에 따라 C# 액세스하는 방법

Manager 클래스로 구성되며 위의 응용 프로그램에서 공유하는 클래스 라이브러리 객체가 있습니다. ConfigurationBuilder 내에서 사용자는 Manager 클래스의 메서드를 사용하는 사용자 지정 코드를 실행할 수 있으며 이러한 메서드는 개체를 만듭니다. (serialize하고 DbTables를 만듭니다)

ConfigurationExecutor 사용자는 Manager 클래스의 메서드를 사용하며 이러한 메서드는 테이블에 행을 만듭니다.

이제 사용자가 ConfigurationBuilder에서 사용하는 API 인 ConfigurationExecutor 및 Vise-versa와 구분되는 것을 막으려 고합니다.

우수 사례 공유에 감사드립니다.

감사합니다.

+3

어떤 종류의에서 이러한 인터페이스를 구현 관리자 클래스 인터페이스에서

class Manager() { Method1(); Method2(); Method3(); Method4(); } 

분할 방법입니다 클래스 다이어그램이 여기에 도움이 될까요? 이 말은 읽는 것이 매우 어렵습니다 – Liam

+2

이 질문은 나를 혼란스럽게합니다 ... API를 만드는 것은 다른 사람들도 사용해야한다는 것을 의미합니다. 게다가 '내부'와 '사적'에 대해 들어 보셨습니까? – lokusking

+0

Manager 클래스를 BuildManager와 ExecutionManager로 분할하지 않는 이유는 무엇입니까? –

답변

1

이 가정 별도의 방법과 두 개의 인터페이스를 만들기

IMethodsForConfigurationBuilder 
{ 
    Method1(); 
    Method2(); 
} 


IMethodsForConfigurationExecutor 
{ 
    Method3(); 
    Method4(); 
} 

은 관리자에

Manager : IMethodsForConfigurationBuilder, IMethodsForConfigurationExecutor 
{ 
Method1(); 
Method2(); 
Method3(); 
Method4(); 
} 

// Now in your ConfigurationBuilder class 

{ IMethodsForConfigurationBuilder Manager = new Manager();} 

//and in your ConfigurationExecutor classs call 

IMethodsForConfigurationExecutor Manager = new Manager(); 
+0

이것은 더 좋은 생각 같습니다. 나는 시험하고 돌아올 것이다. 감사. – Tim