Problema
Suponga que tiene que controlar el acceso a un establecimiento comercial, que tiene limite de 5 personas. Para este propósito contemple dos opciones:
- El constructor incrementa un contador.
- Static Factory Method (No traduzca) incrementa el contador.
Cree la clase Ingreso con la variable privada num_Personas (entera) tal que se permita el ingreso al establecimiento hasta que num_Personas sea igual a 5. Al ingreso 6, el programa debe sacar un mensaje: "Cupo lleno". Identifique la diferencias.
Solución
Se crean dos clases: Ingreso y Ingreso_Factory. Observar el uso de: variables y metodos estáticos, constructores privados y ArrayList de objetos.
Clase Ingreso
package certification1;
public class Ingreso {
public static int num_personas = 0;
public Ingreso(){
if(num_personas < 5){
num_personas++;
}else{
this.Msg();
}
}
public void Msg(){
System.err.println("Cupo Máximo alcanzado");
}
}
Ingreso Factory
package certification1;
public class Ingreso_Factory {
public static int num_personas = 0;
private Ingreso_Factory(){
num_personas++;
}
private void Msg(){
System.err.println("Cupo Max alcanzado");
}
public static Ingreso_Factory factory_Ingreso(){
if(num_personas < 6){
return new Ingreso_Factory();
}else{
return null;
}
}
}
Certification1 (Contiene main)
package certification1;
import java.util.ArrayList;
public class Certification1 {
public static void main(String[] args) {
// Con Constructor
ArrayList
for (int i = 0; i < 5; i++) {
A1.add(new Ingreso());
}
System.out.println("Número de Personas: " + Ingreso.num_personas);
// Con Factory
ArrayList
for (int i = 0; i < 5; i++) {
A2.add(Ingreso_Factory.factory_Ingreso());
}
System.out.println("Número de Personas: " + Ingreso_Factory.num_personas);
}
}
No comments:
Post a Comment