EdD - Clase Stack (subclase de la que viene en el Framework de Microsoft)
Página 1 de 1.
EdD - Clase Stack (subclase de la que viene en el Framework de Microsoft)
Como ya se vió en los ejercicios, la clase Stack que viene en el Framework de Microsoft no tiene las propiedades IsEmpty, IsFull y IsNormal; pues bién aquí tienen una subclase (derivada de la que está en el Framework) que agrega ese comportamiento.
Implementación (derivación)
El diagrama de clase completo es el siguiente:
Como pueden ver, nuestra clase Stack<T> es una subclase de la clase System.Collection.Generics.Stack<T>
En el diagrama también se muestran las interfaces (contratos de comportamiento) que la clase del Framework implementa (esto es tema de las próximas teorías)
Implementación (derivación)
- Código:
using System;
namespace DemoPila4
{
/// <summary>
/// Implementación de Lista de pila almacenada en secuencia
/// Se utiliza como clase base la que proporciona el Framework de Microsoft
/// La idea es implementar las propiedades IsEmpty, IsFull, IsNormal
/// </summary>
public class Stack <ELEMENT> : System.Collections.Generic.Stack<ELEMENT>
{
#region Estructura Interna
/// <summary>
/// Tamaño por defecto del contenedor
/// </summary>
private static readonly int DEFAULT_SIZE = 10;
#endregion
#region Constructores
/// <summary>
/// Constructor por defecto
/// Nos aseguramos que el contenedor sea válido
/// Invocamos el constructor de la clase base
/// </summary>
public Stack()
: base(DEFAULT_SIZE)
{ }
/// <summary>
/// Constructor especializado
/// <precondition>
/// El tamaño debe ser mayor que cero
/// </precondition>
/// </summary>
/// <param name="size">Tamaño del contenedor</param>
public Stack(int size)
: base(size)
{ }
#endregion
#region Propiedades
/// <summary>
/// Determina si la pila (Stack) está vacía
/// </summary>
public bool IsEmpty
{
get
{
return this.Count <= 0;
}
}
/// <summary>
/// Determina si la pila (Stack) está llena
/// La implementación del Framework de Microsoft
/// nunca se llena (a menos que no haya memoria)
/// de manera que esta propiedad siempre es falsa
/// </summary>
public bool IsFull
{
get
{
return false;
}
}
/// <summary>
/// Determina si la pila (Stack) está normal
/// </summary>
public bool IsNormal
{
get
{
return !(this.IsEmpty || this.IsFull);
}
}
#endregion
}
}
El diagrama de clase completo es el siguiente:
Como pueden ver, nuestra clase Stack<T> es una subclase de la clase System.Collection.Generics.Stack<T>
En el diagrama también se muestran las interfaces (contratos de comportamiento) que la clase del Framework implementa (esto es tema de las próximas teorías)
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|