Diferencias
Muestra las diferencias entre dos versiones de la página.
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> |