No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Interfaces

12/25
Recursos

Aportes 10

Preguntas 7

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Un contrato es un acuerdo legal que no se puede romper, que no se puede romper.

Les comparto mis apuntes. 😄

Interfaces en clases

Las interfaces en clases funcionan como contratos, nos permiten tipar tanto los atributos como los métodos.

Aquí no podemos utilizar encapsulamiento, por defecto todos los atributos y métodos son públicos.

Implements

Tiene la misma sintaxis cuando aplicamos herencias en las clases, pero implements no es una herencia, es un contrato que nos dice que nuestra clase tiene que cumplir con un estándar que es la interface.

Este contrato es tanto como para los parámetros como para los métodos.

Sintaxis

interface NameInterface {
	statements
}

class NameClass implements NameInterface {
	constructor (
		propertiesOfInterface
	) {
		statements
	}

	methodOfInterface (): dataType { statements }
}

Código de la clase

export interface Driver {
    database: string;
    password: string;
    port: number;

    conect (): void;
    disconnect (): void;
    isConeected (name: string): boolean;
}

// const driver: Driver = {
//     database: '',
//     password: '',
//     port: 23,
// }

class PostresDriver implements Driver{
    constructor (
        public database: string,
        public password: string,
        public port: number,
    ) {

    }

    conect (): void {}
    disconnect (): void {}
    isConeected (name: string): boolean {
        return true;
    }
}

class Oracle implements Driver {
     constructor (
        public database: string,
        public password: string,
        public port: number,
    ) {

    }
    conect (): void {}

    disconnect (): void {}
    isConeected (name: string): boolean {
        return true;
    }
}

Una interfaces se implementan con la palabra reservada implements

En VScode puedes colcar el cursor sobre el nombre de la clase, en la parte superior izquierda sobre la palabra class, sale un ícono(como un bombilllito) que al clickearlo te despliega un menú, si selecionas:
-Inplements Interface ‘NameInterface’…
le agrega a nuestra clase con todos los atributos de la interface

No es una herencia, es un estandar que se debe cumplir porque previamente ya fue definido

Podemos usar las interfaces como ‘contratos’ para que las clases cumplan una serie de requisitos.

Es increible que se muestren ejemplos de la vida real, es muy util ya que asi nos ayuda a implementar este tipo de cuestiones

no entiendo 😦

Class Code #12

export interface Driver {
  database: string;
  password: string;
  port: number;


  connect() :void;
  disconnect(): void;
  isConnected(name: string):boolean;
}

/* const driver: Driver = {
  database: '',
  password: '',
  port: 23
} */

class PostgressDriver implements Driver {
  constructor(
    public database: string,
    public password: string,
    public port: number,
    private host: number
  ) {}

  connect(): void {

  }
  disconnect(): void {

  }
  isConnected(name: string): boolean {
    return true;
  }
}

class OracleDriver implements Driver {
  constructor(
    public database: string,
    public password: string,
    public port: number
  ) {}

  connect(): void {

  }
  disconnect(): void {

  }
  isConnected(name: string): boolean {
    return false;
  }
}

Contrato: Acuerdo, generalmente escrito, por el que dos o más partes se comprometen recíprocamente a respetar y cumplir una serie de condiciones.