Este dilema se puede abordar de variadas formas, pero en este caso te dejamos la solución más completa para nosotros.
Solución:
La siguiente respuesta es del libro Gof (Patrones de diseño)
de un objeto clase define cómo se implementa el objeto. La clase define el estado interno del objeto y la implementación de sus operaciones.
Por el contrario, un objeto
escribe solo se refiere a su interfaz, un conjunto de solicitudes a las que puede responder.Un objeto puede tener muchos tipos y objetos de diferentes clases pueden tener el mismo tipo.
//example in c++
template
const T & max(T const & a,T const &b)
return a>b?a:b; //> operator of the type is used for comparison
La función max requiere un tipo con operación > con su propio tipo como una de sus interfaces, cualquier clase que satisfaga el requisito anterior se puede usar para generar una función máxima específica para esa clase.
Siempre pienso en un ‘tipo’ como un término general para ‘clases’ y ‘primitivos’.
int foo; // Type is int, class is nonexistent.
MyClass foo; // Type is MyClass, class is MyClass
Inspirado en Wikipedia…
En teoría de tipos términos;
-
A escribe es una interfaz abstracta.
Los tipos generalmente representan sustantivos, como una persona, lugar o cosa, o algo nominalizado, -
A clase representa una implementación del tipo.
Es una estructura de datos concreta y una colección de subrutinas.Diferentes clases concretas pueden producir objetos del mismo tipo abstracto (dependiendo del sistema de tipos).
* Por ejemplo, se podría implementar el escribe
Stack
con dos clases:SmallStack
(rápido para pilas pequeñas, pero escala mal) yScalableStack
(escala bien pero tiene una sobrecarga alta para pilas pequeñas).*De manera similar, una clase dada puede tener varios constructores.
El ejemplo del plátano.
A
Banana
escribe representaría las propiedades y funcionalidad del banano en general.los
ABCBanana
yXYZBanana
clases representaría formas de producir banano.
(Distintos proveedores de bananas en la vida real, o diferentes estructuras de datos y funciones para representar y dibujar bananas en un videojuego).los
ABCBanana
clase podría entonces producir plátanos particulares que son
instancias delABCBanana
claseEllos serian objetos de escribe Banana.
No es raro que el programador proporcione una implementación única para un tipo. En este caso el clase El nombre suele ser idéntico al escribe un nombre. Pero todavía hay un tipo (que podría extraerse en una interfaz si es necesario) y una implementación (que implementaría la interfaz separada) que crea instancias (objetos) de la clase.
Si tienes alguna perplejidad o capacidad de reaccionar nuestro crónica te insinuamos realizar una interpretación y con deseo lo analizaremos.