2017-09-06 12 views
0

내 시스템은 12 개 정도의 센서를 읽고 써야합니다.다른 클래스의 한 클래스에서 몇 가지 메소드에 대한 액세스 권한을 부여하는 방법

개별 센서에 필요한 상태와 모든 기능을 캡슐화하는 각 센서에 대해 별도의 클래스가 있습니다.

상태 시스템 패턴을 사용하여 내 앱의 전반적인 작동을 제어합니다. 상태 머신의 각 상태는 별도의 클래스이기도합니다.

많은 주에서는 센서의 데이터를 읽거나 센서의 상태를 변경하기 위해 각 센서 클래스에서 몇 가지 방법에 액세스해야합니다.

현재 센서 클래스는 정적이지만 모든 센서가 공유하는 기본 기능을 상속하거나 인스턴스화 할 수 없습니다.

테스트에서는 몇 개의 센서 클래스에 대해 싱글 톤 패턴을 시도했지만 상속 또는 인스턴스화 할 수있는 몇 가지 기능이있는 정적 클래스처럼 보입니다. 다른 많은 클래스가 해당 클래스의 몇 가지 메소드에 액세스해야 할 때 정적 또는 단일 클래스에 대한 대안이 있습니까?

+5

코드보기 –

+0

큰 애플 리케이션을 내가하고있는 일을 보여주는 무언가로 끌어 내려고 노력하고 있습니다. 그래서 여기에 게시 할 수 있습니다. – Gene

답변

0

코드가 없어도 자신이하고있는 것이 무엇인지, 필요한 것을 말할 수 없습니다. 엄격하게 설명 할 때 Interfaces가 설계 한 것처럼 들립니다. 그러나 정적 클래스에서는 실제로 작동하지 않습니다. 그러나 그들은 싱글 톤 클래스로 작업 할 것입니다. 이 방법으로

interface IMachine 
{ 
    string MachineId { get; set; } 

    StateObject State { get; set; } 
} 

class Machine : IMachine 
{ 
    public State { 
    get { return [Current State]; } 
    set { [Current State] = value; } 
    } 
} 

static class MachineCollection 
{ 
    pricate List<IMachine> _Machines; 

    public static List<IMachine> Machines 
    { 
     get 
     { 
      if (_Machines == null) 
      { 
       // Instantiate Machines here 
      } 
     } 
    } 
} 

, 당신은 속성이 액세스 한 때를 인스턴스화 정적 클래스를 가질 수 있고, 당신은 목록/배열에있는 모든 기계를 저장할 수 있습니다.