考慮以下兩種情況:C# - 哪個更高效且線程安全?靜態或即時課程?
//Data Contract
public class MyValue
{
}
方案1:使用靜態輔助類。
public class Broker
{
private string[] _userRoles;
public Broker(string[] userRoles)
{
this._userRoles = userRoles;
}
public MyValue[] GetValues()
{
return BrokerHelper.GetValues(this._userRoles);
}
}
static class BrokerHelper
{
static Dictionary<string, MyValue> _values = new Dictionary<string, MyValue>();
public static MyValue[] GetValues(string[] rolesAllowed)
{
return FilterForRoles(_values, rolesAllowed);
}
}
方案2:使用一個實例類。
public class Broker
{
private BrokerService _service;
public Broker(params string[] userRoles)
{
this._service = new BrokerService(userRoles);
}
public MyValue[] GetValues()
{
return _service.GetValues();
}
}
class BrokerService
{
private Dictionary<string, MyValue> _values;
private string[] _userRoles;
public BrokerService(string[] userRoles)
{
this._userRoles = userRoles;
this._values = new Dictionary<string, MyValue>();
}
public MyValue[] GetValues()
{
return FilterForRoles(_values, _userRoles);
}
}
哪[經紀人]方案將如果在一個網絡環境中約100個不同的角色和超過一千用戶使用最佳尺度。
注:隨意採取任何替代方法。
他似乎沒有在初始化後編寫任何數據。 – 2010-04-19 16:35:10