簡體   English   中英

我如何從多個其他類中訪問一個類中的一些方法

[英]how do I give access to a few methods in one class from many other classes

我的系統必須讀寫十幾個傳感器。

對於每個傳感器,我都有一個單獨的類,其中封裝了單個傳感器的狀態和所有所需的功能。

我使用狀態機模式來控制我的應用程序的整體操作。 狀態機中的每個狀態也是一個單獨的類。

許多狀態需要訪問每種傳感器類中的幾種方法,以從傳感器讀取數據或更改傳感器的狀態。

當前,每個傳感器類都是靜態的,但是這種方法不允許我繼承或實例化所有傳感器共享的一些基本功能。

作為測試,我已經嘗試了一些傳感器類的單例模式,但是看起來就像是具有繼承或實例化能力的靜態類。 當許多其他類需要訪問該類中的一些方法時,是否可以使用靜態或單例類的替代方法?

沒有任何代碼,很難說出您在做什么或需要什么。 嚴格按照您的描述進行操作時,聽起來像是接口的設計目的。 但是它們實際上不適用於靜態類。 但是,它們將與單例類一起使用。

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
            }
        }
    }
}

使用這種方法,您可以有一個靜態類在訪問屬性時實例化它們,並且可以將所有計算機存儲在列表/數組中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM