[JAVA] Modèle de prototype

Prototype Pattern Copiez et utilisez l'instance

Sur cette page ・ Confirmation du modèle de prototype -Stocker et utiliser des instances dans la collection Map Décrivez

Design Pattarm MENU

Confirmation du modèle de prototype

Vérifiez avec la structure de classe suivante

classe Explication
samPrototype.class Avoir une méthode pour faire une copie de vous-même
user(Main.class) Vérifiez le fonctionnement

Implémentez l'interface java.lang.Cloneable lors de l'utilisation de la méthode clone ()

Allons vérifier

samPrototype.class


class samPrototype implements Cloneable{         // java.lang.Mettre en œuvre clonable
  void todo(){System.out.println("prototype");}
  
  samPrototype getClone(){
    samPrototype pro = null;
    try{pro=(samPrototype) clone();              // clone()Et faire une copie de lui-même
    }catch(Exception e){}
    return pro;
  }
}

user(Main.class)


public static void main(String[] args){
  samPrototype pr = new samPrototype();
  pr.getClone().todo();
}}

Stocker et utiliser des instances dans la collection Map

Pour Prototype Pattern, enregistrez plusieurs instances à l'avance Il y a une utilisation pour exécuter clone () si nécessaire

Implémenter avec la configuration suivante

nom de la classe Explication
prototype.interface Mettre en œuvre clonable et cloner()Définir une méthode
prototypeImple.class prototype.Implémenter l'interface et cloner()Mettre en œuvre la méthode
prototypeManager.class Conservez une collection d'instances de classe qui implémentent le prototype
cloner en type prototype()Émettre une instance à l'aide d'une méthode
user(Main.class) Vérifiez le fonctionnement

Faisons une classe

prototype.interface


interface prototype extends Cloneable{
  void todo();
  prototype exeClone();
}

prototypeImple.class


class prototypeImple implements prototype{
  String name;
  prototypeImple(String name){this.name=name;}

  public void todo(){System.out.println(name);}

  public prototype exeClone(){
      prototype pro = null;
      try{pro = (prototype) clone();}catch(Exception e){}
      return pro;
  }
}

usr(Main.class)


public static void main(String[] args){
  prototypeManager pm = new prototypeManager();
  pm.set(0, new prototypeImple("A"));
  pm.set(1, new prototypeImple("B"));
  prototype p1 = pm.getClone(0);
  prototype p2 = pm.getClone(1);
  p1.todo();
  p2.todo();
}}

Recommended Posts

Modèle de prototype
Modèle de prototype
Modèle de conception ~ Prototype ~
Motif de souvenir
Motif médiateur
Modèle d'itérateur
Motif composite
Modèle d'observateur
Modèle de constructeur
Modèle de pont
Modèle de commande
Modèle de constructeur
Modèle de stratégie
Modèle d'itérateur
Modèle de visiteur
Modèle d'adaptateur
Modèle de proxy
Modèle de stratégie
Motif composite
Motif singleton
Modèle de façade
Motif décorateur
Modèle de poids mouche
Motif décorateur
Modèle de médiateur
Motif de façade
Modèle de visiteur
Modèle de pont
modèle d'usine abstrait
Modèle de conception ~ Constructeur ~
[Java] Modèle de stratégie
Modèle de conception ~ Visiteur ~
Modèle de conception Java
Modèle de conception ~ Proxy ~
Modèle de conception ~ État ~
Modèle de méthode d'usine
Modèle de conception ~ Stratégie ~
Modèle de conception ~ Composite ~
Modèle de conception (1): AbstractFactory
[Java] Motif singleton
Modèle d'usine abstraite
Modèle de conception ~ Itérateur ~
Modèle de conception ~ Façade ~
Modèle de conception ~ Pont ~
Modèle de conception ~ Médiateur ~
Modèle de méthode de modèle
Modèle de conception ~ Décorateur ~
Modèle de modèle de méthode
Modèle de conception ~ Interprète ~
Modèle de méthode d'usine
Modèle de conception ~ Observateur ~
[Java] Modèle d'adaptateur
Modèle de conception ~ Memento ~
Modèle de conception ~ Adaptateur ~
Modèle de conception ~ Poids mouche ~
Mémo de modèle Java