在C#中,使用依賴注入(IoC)容器實現模塊化設計可以幫助你更好地組織和管理代碼。以下是一些建議:
public interface IModule
{
void Initialize();
}
IModule
接口。public class ModuleA : IModule
{
public void Initialize()
{
// 初始化模塊A的邏輯
}
}
public class ModuleB : IModule
{
public void Initialize()
{
// 初始化模塊B的邏輯
}
}
public class ModuleRegistrar
{
private readonly IServiceContainer _serviceContainer;
public ModuleRegistrar(IServiceContainer serviceContainer)
{
_serviceContainer = serviceContainer;
}
public void RegisterModules()
{
_serviceContainer.Register<IModule, ModuleA>();
_serviceContainer.Register<IModule, ModuleB>();
}
}
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
// 注冊其他服務
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
// 配置其他中間件
var serviceProvider = new ServiceCollection()
.AddSingleton<IServiceContainer>(new ContainerBuilder().Build())
.BuildServiceProvider();
var moduleRegistrar = serviceProvider.GetService<ModuleRegistrar>();
moduleRegistrar.RegisterModules();
app.Run();
}
}
public class Application
{
private readonly IModule _moduleA;
private readonly IModule _moduleB;
public Application(IModule moduleA, IModule moduleB)
{
_moduleA = moduleA;
_moduleB = moduleB;
}
public void Run()
{
_moduleA.Initialize();
_moduleB.Initialize();
}
}
通過這種方式,你可以輕松地添加、刪除或替換模塊,而無需修改其他代碼。這有助于提高代碼的可維護性和可擴展性。