Maison  >  Article  >  Java  >  Tutoriel d'exemple de modèle de prototype de modèle de conception

Tutoriel d'exemple de modèle de prototype de modèle de conception

零下一度
零下一度original
2017-06-27 10:26:331133parcourir

Définition (de l'Encyclopédie Baidu)
Utilisez des instances de prototype pour spécifier les types d'objets à créer et créez de nouveaux objets en copiant ces prototypes.

Diagramme de classes UML :

🎜>

Description de chaque partie : La classe prototype Prototype implémente l'interface Cloneable.

ConcretePrototype1 Une sous-classe de la classe prototype Prototype
public class Client {public static void main(String[] args) {//        Director d = new Director(new ConcreteBuilder());//        d.construct();ConcretePrototype1 prototype = new ConcretePrototype1();for (int i = 0; i < 10; i++) {
            ConcretePrototype1 x = (ConcretePrototype1) prototype.clone();
            x.test1();
        }
    }
}public class Prototype  implements Cloneable {public Prototype clone() {
        Prototype prototype = null;try{
            prototype = (Prototype)super.clone();
        }catch(CloneNotSupportedException e){
            e.printStackTrace();
        }return prototype;
    }
}public class ConcretePrototype1 extends Prototype {public void test1() {
        System.out.println(this);
        System.out.println("123");
    }
}
Détails du mode :

Copier une instance d'objet par clonageLe nouvel objet cloné copie la valeur de l'instance d'origine

Notes sur le mode prototype :

Utiliser le mode prototype pour copier un objet n'appellera pas le constructeur de la classe. Étant donné que la copie de l'objet est terminée en appelant la méthode clone de la classe Object, même les autorisations d'accès ne sont pas valides pour le mode prototype. Vous vous souvenez du modèle singleton ? En mode singleton, tant que l'autorisation d'accès du constructeur est définie sur privée, un singleton peut être implémenté. Cependant, la méthode clone ignore directement les autorisations de la méthode constructeur. Par conséquent, le mode singleton est en conflit avec le mode prototype, une attention particulière doit donc être accordée lors de son utilisation.
La méthode clone effectue une copie superficielle, ce qui signifie que s'il s'agit d'un attribut de type référence, elle ne copiera pas, mais copiera uniquement la référence.

Avantages et inconvénients :
Avantages :
La méthode clone est exécutée par la machine virtuelle copiant directement le bloc mémoire, ce qui est beaucoup plus rapide que le nouveau
Obtention de l'objet au moment de l'exécution Et le statut correspondant
Inconvénients :

Le prototype doit implémenter la méthode clone. Si les attributs du prototype ont de nombreux types de référence, voire des applications dans des objets, alors la méthode clone doit être implémentée de manière récursive. , ce qui sera très compliqué lors de l'ajout d'attributs de référence, modifiera l'implémentation de la méthode clone.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn