创建型/单例模式/SingletonService.cs
(完整代码) 1KBnamespace DesignModeConsole.创建型.单例模式
{
/// <summary>
/// 单例模式服务
/// </summary>
public class SingletonService : IService
{
public void Main()
{
/*
如何实现单例?
● 构造函数需要是private访问权限,这样子避免通过外部new创建实例
● 考虑对象创建时的线程安全问题
● 考虑是否支持延迟加载
● 考虑getInstance()性能是否高(是否加锁)
*/
Test().GetAwaiter().GetResult();
}
private async Task Test()
{
await Task.Run(() =>
{
AddOrder();
});
await Task.Run(() =>
{
AddUser();
});
}
public void AddOrder()
{
//ILogger logger = new Logger1();
ILogger logger = Logger2.GetInstance();
Console.WriteLine("addorder " + logger.GetHashCode());
for (var i = 0; i < 100; i++)
{
logger.Log($"AddOrder {i}");
}
}
public void AddUser()
{
//ILogger logger = new Logger1();
ILogger logger = Logger2.GetInstance();
Console.WriteLine("adduser " + logger.GetHashCode());
for (var i = 0; i < 100; i++)
{
logger.Log($"AddUser {i}");
}
}
}
}
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。