[Definición] Cliente de una clase (Solucionado)

Iniciado por criskapunk, 4 Noviembre 2010, 14:33 PM

0 Miembros y 1 Visitante están viendo este tema.

criskapunk

Buenas chicos,

Estoy empezando a leer algo sobre POO en C# y me surgio una duda. En el manual habla sobre el cliente de una clase. Me podrian explicar a que se refiere?

Un saludo y gracias :)

[D4N93R]

Podrías poner un poco más del contexto, qué al menos yo, no le encuentro mucho sentido.

Un saludo.

criskapunk

Copiado textual del manual:

CitarCuando hable del cliente de una clase me estoy refiriendo al código que está usando esa clase, es decir, instanciándola o invocando métodos de la misma, independientemente de si este código forma parte del mismo programa o de otro distinto, aun escrito en otro lenguaje.

Enlace al manual:

http://www.elguille.info/NET/cursoCSharpErik/Entrega1/Entrega1.htm

Un saludo y gracias ;)

[D4N93R]

Ah ok!

Vale, te explico.

Imagina que tengo la clase User.

Y en mi programa voy a usar la clase usuario:
Código (csharp) [Seleccionar]

public User CreateUser()
{
    return new User();
}


Ese código completo que está instanciando a User es el cliente. Con esto nos referimos al código que utiliza a una clase.

criskapunk

Es decir, el cliente seria todo el codigo que tiene la clase al momento de crearla?

[D4N93R]

No no, el cliente es el codigo que usa la Clase, no EN la clase. Es decir no el codigo que define a USER sino el que lo llama, por así decirlo.

criskapunk

A ver si me quedo un poco mas claro.

El cliente de la clase seria el codigo que crea los objetos e invoca los metodos?

En el siguiente codigo (De lo poco que pude hacer hasta ahora con el apunte :P)

Código (vbnet) [Seleccionar]
Public Class Suma

    Private operando1 As Integer
    Private operando2 As Integer
    Private resultado As Integer

    Public Sub Sumar(ByVal op1 As Integer, ByVal op2 As Integer)
        resultado = op1 + op2
    End Sub

    Public Function ObtenerResultado() As Integer
        Return resultado
    End Function

End Class


Código (vbnet,5,6,7) [Seleccionar]
Module Module1

    Sub Main()
        Dim adicion As Suma
        adicion = New Suma()
        adicion.Sumar(10, 40)
        Console.WriteLine(adicion.ObtenerResultado())
        Console.ReadLine()
    End Sub

End Module


Las lineas remarcadas vendrian a ser el cliente, no?

Un saludo ;)

[D4N93R]

No, te voy a remarcar el cliente:

Código (vbnet,3,4,5,6,7,8,9) [Seleccionar]
Module Module1

   Sub Main()
       Dim adicion As Suma
       adicion = New Suma()
       adicion.Sumar(10, 40)
       Console.WriteLine(adicion.ObtenerResultado())
       Console.ReadLine()
   End Sub

End Module


En ese caso sería la función completa. Normalmente no es toda la clase a menos de que sea algo core de la clase que use la otra clase xP ok ya me enredé un poco. hehe

Un saludo!

criskapunk

No termino de entender por que es todo el programa. Entonces el cliente vendria a ser todo el programa que cree objetos a partir de la clase o invoque sus metodos?

En mi anterior codigo, supongamos que dentro del main hay una funcion, y dentro de ella es donde se crea el objeto y se utilizan los metodos. El cliente seria unicamente la funcion en ese caso?

Un saludo y muchas gracias por la paciencia [D4N93R] :P

[D4N93R]

Exacto,

Ya se, así: El cliente es la parte del código que utiliza una clase, es decir, el contexto que la usa. y puede ser cliente de varias clases también! :D