Ita*_*tay 2 c# static design-patterns
我正在编写一个C#应用程序,根据历史价格分析股票.我有一个保存数据的对象(历史价格).所有数据都保存在这个对象中 - 我只需要它的一个实例,并且数据被整个应用程序中的许多其他对象使用.
鉴于上述情况,使这个对象静态不是更容易(也是更好的设计)吗?因为替代方案是我目前正在做的事情 - 在对象之间传递数十个对同一个实例的引用.
我仍然犹豫不决的原因是我知道static对象应该得到认真对待,因为我已经阅读了这个答案.在我的例子中,对象不是一个简单的实用对象,它不是无状态的.数据被加载到对象中并对其进行更改,但我的想法是,这些更改仍需要在所有其他对象之间共享,我知道我不需要拥有此数据对象的两个不同实例.
你对我案中最好的方法有什么想法?有没有我不考虑的替代解决方案?
您可以将其设置为静态或使用Singleton设计模式.我会用Singleton.
无需传递参考,Singleton提供了一个全局访问点.
例:
public class Singleton
{
private static Singleton instance;
private Singleton()
{}
public static Singleton GetInstance()
{
if(instance == null)
instance = new Singleton();
return instance;
}
}
Run Code Online (Sandbox Code Playgroud)
私有构造函数和GetInstance()函数确保只有一个对象实例.
如果您需要获取对象的引用来调用对象内的函数,请使用以下命令:
Singleton.GetInstance().FunctionName();
Run Code Online (Sandbox Code Playgroud)
此外,这是懒惰的实例化而不是线程安全(多线程程序),但你可以自己了解更多,它应该很有趣!