English | Español
BeyondNet.Factory es una libreria .NET orientada a mejorar los patrones factory y abstract factory mediante comportamiento dirigido por configuracion. Permite a los desarrolladores crear fabricas estructuradas que simplifican la instanciacion de objetos en diferentes aplicaciones .NET.
- Factory Dirigida por Configuracion: Crear fabricas con registros de configuracion para instanciacion mas limpia
- API Fluida: Encadenar configuracion con una interfaz de builder expresiva
- Soporte de Interceptores: Agregar logica personalizada antes/despues de la creacion de objetos
- Integracion DI: Integracion seamless con Microsoft.Extensions.DependencyInjection
- Soporte Generico: Trabajar con tipos genericos para mayor seguridad de tipos
- Extensible: Agregar facilmente fuentes de configuracion e interceptores personalizados
La libreria esta organizada en paquetes modulares:
BeyondNetCode.Shell.Factory # Patrones factory core
BeyondNetCode.Shell.Factory.Installer # Metodos de extension DI# Libreria core
dotnet add package BeyondNetCode.Shell.Factory
# Instalador DI
dotnet add package BeyondNetCode.Shell.Factory.Installerpublic interface IDoSomething
{
string DoIt(string name);
}
public class DoSomething : IDoSomething
{
public string DoIt(string name) => $"Hello, {name}!";
}// Usando API fluida
var factory = new FactorySetupCreateBuilder<IFactory>()
.Create<DoSomething>()
.When<Criteria>(c => c.Age > 18)
.Build();
var service = factory.Create<DoSomething>();
var result = service.DoIt("World"); // "Hello, World!"services.AddFactory(factory =>
{
factory.Create<DoSomething>()
.When<Criteria>(c => c.Age > 18)
.Create<DoSomethingLessThan18>()
.When<Criteria>(c => c.Age <= 18);
});public class MyInterceptor : AbstractFactoryInterceptor
{
public override void OnBeforeCreate(Type type, object[] args)
{
Console.WriteLine($"Creating: {type.Name}");
}
}dotnet testVer CONTRIBUTING.md para el flujo de GitFlow y estandares de codificacion.
Ver VERSIONING.md para estrategia de SemVer.
MIT - Ver LICENSE
Ver DISCLAIMER.md para atribucion de autoria del codigo original.