Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Retroalimentación patrones de diseño: Factory Method #182

Open
AndresSalazar19 opened this issue Jul 30, 2024 · 0 comments
Open

Retroalimentación patrones de diseño: Factory Method #182

AndresSalazar19 opened this issue Jul 30, 2024 · 0 comments

Comments

@AndresSalazar19
Copy link

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:
jPNBRi8m44Nt-Ghl2eBy04Aeg0W9gL5HeUow6981B3bnQZkeLTj_hstoS23XqQfPPE4vSprt_BgN2eJAOkRTaGbkQ8846Pb2gBZu806g7Oz82WB8Abw4EumoXiA3jLH2CoHa8AKRAZ8_FQA_7Wa5Wi8ot4cHKQa6v57_XtCSTScWflpjUIUQkPXFKZHffCeknmD8zR3-3nTAq6JRBv62YM

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);
    }
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant