感谢您的关注和时间。我需要你对基本架构问题的意见。
在页面后面的类中,我使用私有和共享对象和变量(列表或只是客户端或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);
}
}
我真的很感谢你节省时间和关心。
答案 0 :(得分:3)
如果您为每个页面刷新创建此类的新实例,那么它将不会成为问题,因为每个请求都将使用其自己的所有类的实例运行。
答案 1 :(得分:1)
如果要为每个页面创建新实例并且像GetClients()这样的函数很重,您可能要考虑不为每个页面/会话运行它,而是使用一些缓存机制。
反过来说 - 如果系统范围内只有一个这个类的实例,你需要同步,这样一个线程就不会改变数据而其他线程读取它。