Вы находитесь на странице: 1из 4

//en este caso no cumpliariamos con este principio O, ya que si queremos añ adir

nuevas universidades tendriamos que modificar el metodo. A esto le sumariamos el


hecho de que si quisieramos que el software creciera, no searia una buena practica
hacer modificació n por cada nuevo item que se requiere.

/* O: Principio abierto/cerrado
Establece que las entidades software (clases, mó dulos y funciones) deberían estar
abiertos para su extensió n, pero cerrados para su modificació n.
**/

public class Universidad {


String carrera;

Universidad(final String carrera){ this.carrera = carrera; }

String getCarreraUniversidad(){ return Universidad; }

public static void main(final String[] args) {


final Coche[] arrayUniversidad = {
new Universidad("Politecnico Grancolombiano"),
new Universidad("La salle")
};
PrecioU(arrayUniversidad);
}

public static void PrecioU(final Universidad[] arrayUniversidad){


for (final Universidad universidad : arrayUniversidad) {
if(universidad.carrera.equals("Politecnico Grancolombiano")) System.out.println(5300000);
if(universidad.carrera.equals("La Salle")) System.out.println(7200000);
// if(universidad.carrera.equals("Manuela Beltran")) System.out.println(8500000);
}
}

Universidad[] arrayUniversidad = {
new Universidad("Politecnico Grancolombiano"),
new Universidad("la salle"),
new Universidad("Manuela Beltran")
};
}
IMPLEMENTANDO EL PRINCIPIO O
//cada universidad usa la clase abstracta Universidad e implementa el metodo
precioU. Así cada universidad tiene su propia implementació n del metodo precioU
itera el array de universidad y solo llama a precioU. Por consecuente si quereremos
agregar una universidad, precioU no tendria que se modificado, solo habria q añ adir el
la nueva universidad al arreglo.

abstract class Universidad {

abstract int precioU();


}

class PolitecnicoGrancolombiano extends Universidad {


@Override
int precioU() { return 5300000; }
}

class Lasalle extends Universidad {


@Override
int precioU() { return 7200000; }
}

class ManuelaBeltran extends Universidad {


@Override
int precioU() { return 8500000; }
}

public static void main(String[] args) {

Coche[] arrayCoches = {
new PolitecnicoGrancolombiano(),
new Lasalle(),
new ManuelaBeltran()
};

precioU(arrayCoches);
}

public static void precioU (Coche[] arrayCoches){


for (Universidad carrera : arrayUniversidad) {
System.out.println(universidad.precioU());
}
}

interface ANIMALES {
void volar();
void comer();
}

class Loro implements ANIMALES{

@Override
public void volar() {

@Override
public void comer() {

}
}

class Tucan implements ANIMALES{


@Override
public void volar() {

@Override
public void comer() {

}
}
interface Animales {
void comer();
}
interface AnimalVolador {
void volar();
}

interface AnimalNadador {
void nadar();
}

class Loro implements Animales, AnimalVolador{

@Override
public void volar() {

@Override
public void comer() {

}
}

class Pinguino implements Animales, AnimalNadado{

@Override
public void nadar() {

@Override
public void comer() {

}
}

Вам также может понравиться