您好我有一些代码,我使用Manager的静态对象从Manager调用方法:
public class Manager
{
public static Manager sManager = new Manager();
public int x;
public Manager()
{
}
public void Modify()
{
x ++;
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine(Manager.sManager.x);
Manager.sManager.Modify();
Console.WriteLine(Manager.sManager.x);
Console.ReadLine();
}
}
这是从外部访问Manager方法的好方法,还是有更好的方法,如果类管理器必须拥有方法Modify。
在这种情况下使用事件是一种更好的方法来构建它并让Manager监听更新吗?
或者,即使我希望方法Modify保留在Manager类中,还是有更好的方法来处理它吗?
答案 0 :(得分:1)
这取决于您尝试构建的架构。
让一切静止
如果它很简单,只需将x
和Modify
设为静态,您就不会需要实例。
使用单件模式
如果确实需要Manager实例,那么使用Singleton模式可以更好地使用代码
private static Manager _manager;
public static Manager Manager
{
get
{
if (_manager == null)
{
_manager = new Manager();
}
return instance;
}
}
答案 1 :(得分:1)
这里没有理由在Manager
类中创建相同类型的静态字段。您只需要创建一个对象,然后调用所需的方法。
更好的方法是将字段设为私有,并将其公开以供阅读,以便不能直接修改,我们只需调用modify()
方法修改字段:
public class Manager
{
private int x;
public int X
{
get
{
return x;
}
}
public Manager()
{
}
public void Modify()
{
x++;
}
}
然后在你的Program类中使用它:
class Program
{
static void Main(string[] args)
{
Manager objManager = new Manager();
Console.WriteLine(objManager.X);
objManager.Modify();
Console.WriteLine(objManager.X);
Console.ReadLine();
}
}