-
Notifications
You must be signed in to change notification settings - Fork 536
Description
He elegido el patrón Factory Method para la implementación de los planificadores de máquinas virtuales (VmScheduler) porque este patrón proporciona una manera flexible y escalable de crear objetos sin tener que especificar las clases exactas de los objetos que se van a crear. Los diferentes tipos de VmScheduler (como VmSchedulerSpaceShared y VmSchedulerTimeShared) representan estrategias diferentes para asignar recursos a las máquinas virtuales. El Factory Method permite encapsular la lógica específica de cada estrategia y proporciona una interfaz común para interactuar con todas las estrategias.
Una manera de implementarlo sería:
Código:
package org.cloudbus.cloudsim;
/**
- Interfaz de fábrica para crear instancias de VmScheduler.
*/
public abstract class VmSchedulerFactory {
public abstract VmScheduler createScheduler(List<? extends Pe> pelist);
}
package org.cloudbus.cloudsim;
import java.util.List;
/**
- Fábrica concreta para crear instancias de VmSchedulerTimeShared.
*/
public class VmSchedulerTimeSharedFactory extends VmSchedulerFactory {
@OverRide
public VmScheduler createScheduler(List<? extends Pe> pelist) {
return new VmSchedulerTimeShared(pelist);
}
}
package org.cloudbus.cloudsim;
import java.util.List;
/**
- Fábrica concreta para crear instancias de VmSchedulerSpaceShared.
*/
public class VmSchedulerSpaceSharedFactory extends VmSchedulerFactory {
@OverRide
public VmScheduler createScheduler(List<? extends Pe> pelist) {
return new VmSchedulerSpaceShared(pelist);
}
}