簡體   English   中英

在類級別使用私有共享對象/變量有害嗎?

[英]is using private shared objects/variables on class level harmful?

感謝您的關注和時間。 我需要您對基本建築問題的看法。

在類后面的頁面中,我使用私有和共享的對象和變量(列表或僅客戶端或simplay int id)臨時保存來自數據庫或類庫的數據。 該對象暫時用於捕獲數據,然后返回,傳遞給某些函數或綁定控件。

第一:這種方法有什么危害嗎? 我無法對其進行分析,但是當多個用戶一次發送請求時,使用這樣的共享變量可能會替換其中的數據?

第二:請也評論在BLL中使用此類變量(以保存來自DAL /數據庫的數據)。 在此示例中,每次都會創建BLL類的新對象。

這是示例代碼:

public class ClientManager
{
    Client objclient = new Client();  //Used in 1st and 2nd method
    List<Client> clientlist = new List<Client>();// used in 3rd and 4th method
    ClientRepository objclientRep = new ClientRepository();

    public List<Client> GetClients()
    {
        return clientlist = objclientRep.GetClients();
    }
    public List<Client> SearchClients(string Keyword)
    {
        return clientlist = objclientRep.SearchClients(Keyword);
    }

    public Client GetaClient(int ClientId)
    {
        return objclient = objclientRep.GetaClient(ClientId);
    }

    public Client GetClientDetailForConfirmOrder(int UserId)
    {
        return objclientRep.GetClientDetailForConfirmOrder(UserId);
    }
}

非常感謝您抽出寶貴的時間並給予我極大的關注。

如果您要為每次頁面刷新創建此類的新實例,那么這將不是問題,因為每個請求都將使用其自己的所有類實例運行。

如果要為每個頁面創建新實例,並且諸如GetClients()之類的功能很繁重,則可能要考慮不在每個頁面/會話中運行它,而是使用某種緩存機制。

另一方面,如果只有這個類系統范圍的一個實例,則需要同步,因此一個線程不會更改數據,而另一個線程則可以讀取數據。

暫無
暫無

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

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