module SistemaClientes { interface ICliente; interface IPersona; interface IDireccion; interface ITelefono; interface ICliente { long Get_ClienteNo(); long Set_ClienteNo(); SistemaClientes::IPersona Get_Cliente(); SistemaClientes::IPersona Set_Cliente(); SistemaClientes::IDireccion Get_Direccion(); SistemaClientes::IDireccion Set_Direccion(); SistemaClientes::ITelefono Get_Telefono(); SistemaClientes::ITelefono Set_Telefono(); double Get_UltimaCompra(); double Set_UltimaCompra(); double Get_UltimoPago(); double Set_UltimoPago(); SistemaClientes::NEstatus Get_Estatus(); SistemaClientes::NEstatus Set_Estatus(); double Get_CreditoDisponible(); double Set_CreditoDisponible(); }; interface ClienteFactory { ICliente CreateInstance(in string InstanceName); }; interface IPersona { wstring Get_NombredePila(); wstring Set_NombredePila(); wstring Get_ApellidoPaterno(); wstring Set_ApellidoPaterno(); wstring Get_ApellidoMaterno(); wstring Set_ApellidoMaterno(); double Get_FechadeNacimiento(); double Set_FechadeNacimiento(); }; interface PersonaFactory { IPersona CreateInstance(in string InstanceName); }; enum NEstatus { AlCorriente, NuevoCliente, Atrasado, Conflicto }; interface IDireccion { }; interface ITelefono { }; interface DireccionFactory { IDireccion CreateInstance(in string InstanceName); }; interface TelefonoFactory { ITelefono CreateInstance(in string InstanceName); }; };