** Table des matières ** Le dernier modèle de génération est une seule tonne. Je pense que c'est un modèle que tout le monde connaît. Je pense que le premier modèle de conception que j'ai appris était d'une seule tonne.
Les classes qui fournissent des connexions DB et les classes qui obtiennent des actifs sont généralement implémentées dans ce modèle. Garantit l'unicité d'une instance de cette classe dans le programme.
Il garantit qu'il n'y a qu'une seule instance pour une classe et fournit un moyen global d'y accéder.
· Une classe dans laquelle une seule instance Singleton est créée
Si vous codez ce modèle avec kotlin, il sera sous une forme simple comme indiqué ci-dessous, donc je ne suis pas sûr, donc je vais le coder avec java.
SingletonObject.kt
package singleton
object SingletonObject {
var str = ""
fun print() {
println("Résultat de sortie:$str")
}
}
Créez des images et des fichiers musicaux à partir de plusieurs écrans via des objets singleton.
Objet Singleton
JavaSingletonObject.java
package singleton;
public class JavaSingletonObject {
/**
*Défini comme statique et rend l'instance de sa propre classe unique
*/
public static JavaSingletonObject instance = new JavaSingletonObject();
private String address = "/assets/temp";
enum Assets {
IMAGE1("image_1"),
IMAGE2("image_2"),
AUDIO1("audio_1"),
AUDIO2("audio_2");
private final String value;
Assets(final String value) {
this.value = value;
}
}
/**
*Définissez le constructeur comme privé afin qu'aucune nouvelle instance ne puisse être créée.
*/
private JavaSingletonObject(){
System.out.println("Lien:" + address);
}
public String getAssets(Assets target) {
System.out.println("Acquisition de matériel avec objet singleton:" + target.value);
return target.value;
}
}
Classe d'écran 1
DisplayOne.kt
package singleton
class DisplayOne {
fun draw() {
println("Dans User1${JavaSingletonObject.instance.getAssets(JavaSingletonObject.Assets.IMAGE1)}Dessiner!!")
}
}
Classe écran 2
DisplayTwo.kt
package singleton
class DisplayTwo {
fun start() {
println("Dans User2${JavaSingletonObject.instance.getAssets(JavaSingletonObject.Assets.AUDIO1)}Jouer!!")
}
}
Classe de gestion d'écran
Manager.kt
package singleton
class Manager {
init {
DisplayOne().draw()
DisplayTwo().start()
}
}
Ceci termine l'implémentation du modèle singleton. Ce processus est censé être exécuté une seule fois car la connexion aux actifs est établie dans le constructeur de la classe `` JavaSingletonObject ''.
De plus, puisque le constructeur est défini comme privé, il n'est pas possible de créer une nouvelle instance de la classe et l'unicité est garantie.
[output]
Lien:/assets/temp
Acquisition de matière avec objet singleton: image_1
Image dans User1_Nul 1!!
Acquisition de matériel avec un objet singleton: audio_1
Audio dans User2_Jouer 1!!
Recommended Posts