情景
想要是用单件模式,降低系统的耦合,即一个对象创建后再哪里都可以使用。不需要与任何 使用他的类建立关系。单是我还想使用接口,如果用继承的方式来实现每个类都是单件无法实现。所以我想能不能在外层控制呢,就是通过一个函数调用,单一个函数调用每个类型的时候,控制 这个类型的单件,与是有了这个实践。
代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace 创建单件函数_任何类都可单件
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("创建单件函数_任何类都可单件");
Sigleton sigleton = new Sigleton();
string typeName = typeof(A).FullName;
A a2 = (A)sigleton.getMy(typeName);
a2.fun();
Console.ReadKey();
}
}
class Sigleton {
Dictionary<string, Object> keyValuePairs = new Dictionary<string, object>();
object o;
public Object getMy(string type)
{
Assembly assembly = Assembly.GetExecutingAssembly(); // 获取当前程序集
try
{
object o = keyValuePairs[type];
}
catch (Exception ex) {
}
if (o == null) {
o = assembly.CreateInstance(type);
}
return o;
}
}
class A {
public void fun() {
Console.WriteLine("我是a");
}
}
class B {
public void fun() {
Console.WriteLine("我是B");
}
}
}
运行

该博客介绍了一种通过外部函数控制单例模式的方法,以解决在多个类中实现单例并保持低耦合的问题。代码示例展示了如何利用C#创建一个通用的单例获取函数,该函数能为任何传入的类类型返回其单例实例。这种方式允许在不使用继承的情况下,确保每个类都能以单例形式存在。
1822

被折叠的 条评论
为什么被折叠?



