Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anterior Revisión previa
Próxima revisión
Revisión previa
cap:poo:modularidad [2017/04/07 17:19]
user [Ejemplos]
cap:poo:modularidad [2018/02/20 09:18] (actual)
Línea 11: Línea 11:
 ==== Aplicación en CSharp ==== ==== Aplicación en CSharp ====
  
-En el siguiente ejemplo veremos como ... .+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.
  
-<file csharp ​concepto_modularidad.cs>+<file csharp ​concepto_modularidad_base.cs>
 using System; using System;
  
 namespace Capacitacion.Modularidad namespace Capacitacion.Modularidad
 { {
-    public abstract class Figura +   ​public ​interface IDataService 
-    +   ​
-        ​public ​decimal Base { get; set; } +      void Guardar(Persona persona); 
-        ​public decimal Altura ​get; set; } +   ​}
-        ​public abstract decimal CalcularArea(); +
-    }+
  
-    ​public class Triangulo : Figura +   public class Persona 
-    +   ​
-        public ​override decimal CalcularArea() +      public ​string Nombre { get; set; } 
-        +      ​public string Apellido ​get; set; } 
-            ​return ​(Base * Altura) / 2m; +   } 
-        +    
-    }+   ​public abstract class FactoryDataService 
 +   { 
 +      public static IDataService Create() 
 +      { 
 +         //​Implementación de la fábrica para obtener el DataService apropiado 
 +      
 +   ​} 
 +
 +</​file>​
  
-    public class Rectangulo : Figura +<file csharp concepto_modularidad_dataservice_bd.cs>​ 
-    { +using System;
-        public override decimal CalcularArea() +
-        { +
-            return Base * Altura; +
-        } +
-    }+
  
-    ​public class Program +namespace Capacitacion.Modularidad.Datos 
-    +
-        public ​static ​void Main(string[] args+   public class BDDataService : IDataService 
-        +   ​
-            ​Figura figura = new Rectangulo() { Altura = 4, Base = 3 }; +      public void Guardar(Persona persona
-            ​Console.WriteLine($"​El área del rectangulo es {figura.CalcularArea()}");+      
 +         //​implementacion de guardado de persona en base de datos 
 +      ​
 +   ​} 
 +
 +</​file>​
  
-            figura = new Triangulo() { Altura = 4, Base = 3 }; +<file csharp concepto_modularidad_dataservice_text.cs>​ 
-            ​Console.WriteLine($"​El área del triangulo es {figura.CalcularArea()}"​);+using System;
  
-            Console.ReadKey(); +namespace Capacitacion.Modularidad.Datos 
-        +
-    }+   ​public class TextDataService : IDataService 
 +   { 
 +      public void Guardar(Persona persona
 +      { 
 +         //​implementacion de guardado de persona en archivo de texto 
 +      ​
 +   ​}
 } }
 </​file>​ </​file>​
  
 +<file csharp 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();​
 +      }
 +   }
 +}
 +</​file>​