Tabla de Contenidos

Modularidad

Es la propiedad que adquiere una aplicación cuando puede dividirse en partes mas pequeñas, que pueden trabajar por separado pero a su vez pueden mantener conexiones entre sí.

Ejemplos

Aplicación en CSharp

En el siguiente ejemplo veremos como una aplicacion tiene modularizado el servicio de datos, donde un componente llamado fábrica obtiene al servicio de datos apropiado, para que se pueda almacenar los valores de una persona, a su vez veremos dos servicios de datos, uno que almacena a una base de datos y otro que almacena a un archivo de texto.

concepto_modularidad_base.cs
using System;
 
namespace Capacitacion.Modularidad
{
   public interface IDataService
   {
      void Guardar(Persona persona);
   }
 
   public class Persona
   {
      public string Nombre { get; set; }
      public string Apellido { get; set; }
   }
 
   public abstract class FactoryDataService
   {
      public static IDataService Create()
      {
         //Implementación de la fábrica para obtener el DataService apropiado
      }
   }
}
concepto_modularidad_dataservice_bd.cs
using System;
 
namespace Capacitacion.Modularidad.Datos
{
   public class BDDataService : IDataService
   {
      public void Guardar(Persona persona)
      {
         //implementacion de guardado de persona en base de datos
      }
   }
}
concepto_modularidad_dataservice_text.cs
using System;
 
namespace Capacitacion.Modularidad.Datos
{
   public class TextDataService : IDataService
   {
      public void Guardar(Persona persona)
      {
         //implementacion de guardado de persona en archivo de texto
      }
   }
}
concepto_modularidad.cs
using System;
using Capacitacion.Modularidad.Datos;
 
namespace Capacitacion.Modularidad
{
   public class Program
   {
      public static void Main(string[] args)
      {
         IDataService ds = FactoryDataService.Create();
 
         var persona = new Persona();
         persona.Nombre = "Juan";
         persona.Apellido = "Perez";
 
         ds.Guardar(persona);
 
         Console.ReadLine();
      }
   }
}