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 鈥楴ameInterface鈥欌
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 鈥榗ontratos鈥 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.