Este artículo describe el uso del modo prototipo para Java para mostrar la vida diaria. Compártelo para su referencia, como sigue:
1. Definición de patrones
Especifique el tipo de objetos que se crearán con instancias prototipo y cree nuevos objetos copiando estos prototipos.
2. Ejemplos del modelo
1 análisis de patrones
Utilizamos la situación de trabajo diario para ilustrar este modelo.
2 Diagrama de análisis de historias
3 modelado estático en modo prototipo
4 ejemplos de código
4.1 Creación de prototipo
paquete com.prototype.pojo;/** * Daily Life Class * * @author * */public class DayLife implementa clonable {// Construct Method public DayLife () {System.out.println ("-¡El método de construcción se ejecuta!-"); } // Sube el atuendo de cadena privada; // Toma el autobús Bybus de cadena privada; // Salga y compra el desayuno GetFood de cuerda privada; // toma una siesta al mediodía; // Comience a trabajar en la tarde de la tarde privada de la tarde; // Vaya a casa desde el trabajo GOHOME PRIVADO String; // Noche de ocio privado Noche de cuerda; public String getGetUp () {return getup; } public void setGetup (string getup) {this.getup = getup; } public String getByBus () {return bybus; } public void setByBus (String bybus) {this.bybus = bybus; } public String getgetFood () {return getFood; } public void setgetFood (String getFood) {this.getFood = getFood; } public String getNoon () {return noon; } public void setNoon (String Noon) {this.noon = noon; } public String getAfternoonwork () {return toightwork; } public void setAfternoonwork (string townternwork) {this.afternoonwork = toightwork; } public String getGohome () {return Gohome; } public void setgohome (string gohome) {this.gohome = gohome; } public string getnight () {return Night; } public void setnight (string night) {this.night = night; } / *** Imprima información de la vida diaria* / public void print () {System.out.println (this.getgetup ()); System.out.println (this.getBybus ()); System.out.println (this.getgetfood ()); System.out.println (this.getnoon ()); System.out.println (this.getAfternoonWork ()); System.out.println (this.getgohome ()); System.out.println (this.getnight ()); } / *** Método de clon* / @Override public dayLife clone () {try {// llame al método clon del superclase (superclase? ¡ninguna clase está integrada? } catch (excepción e) {} return null; }}4.2 Crear una fábrica abstracta que genera objetos prototipo
paquete com.prototype.factory; import com.prototype.pojo.daylife;/** * clase de fábrica * * @author * */interfaz pública iliffactory {/** * Production Daylife Object * * @return */public Daylife getNeWinStance ();}4.3 Crear una fábrica específica para generar objetos prototipo
paquete com.prototype.factory.impl; import com.protype.factory.ilifactory; import com.protype.pojo.daylife;/** * Clase de implementación de fábrica * * @author * */public class LiforyImpl implements ilifactory {// La instancia de objeto de día de día se utiliza para inicializar la vida de día de día estática privada vife; /** * Implementación del método GetNewinStance: * * Primero determine si DayLife es nulo: * Si es nulo, use nuevo para crear un objeto DayLife, establezca el contenido inicial, luego asigne a la instancia del objeto DayLife y luego regrese; * Si no es nulo, use el método de clonos de Daylift para generar un nuevo objeto y copiarlo al objeto DayLife, y luego regresar */ @Override public daylife getNewinstance () {// Determine si DayLife es nulo if (dayLife == null) {// si null // la salida es un objeto generado que usa nuevo. Nota: ¡Usa este nuevo solo una vez! System.out.println ("¡Nueva vida daylife!"); // Establecer el contenido de DayLife DayLife = New DayLife (); DayLife.SetgetUp ("Llegue a las 7:00"); DayLife.SetByBus ("Tomar autobús a las 7:30"); DayLife.SetgetFood ("Getgetget baje en la parada de autobús cerca de la compañía a las 8:30, y al pasar el auto de desayuno al lado de la carretera, comprará el desayuno y lo llevará a la compañía"); Daylife.setnoon ("El almuerzo se resuelve en un pequeño restaurante cerca de la compañía, y luego tome una siesta en el asiento de la oficina"); DayLife.setAfternoonWork ("13:30 comenzó el trabajo de la tarde"); Daylife.setgohome ("17:30 salió del trabajo a tiempo"); Daylife.setnight ("entretenimiento nocturno"); } else {// Si no es nulo // la salida es un objeto generado usando el método clon System.out.println ("Clone DayLife!"); // Asignar el objeto Clone a DayLife y return DayLife = DayLife.Clone (); } return Daylife; }}4.4 Pantalla de escenario de trabajo diario
paquete com; import com.prototype.factory.ilifactory; import com.protype.factory.impl.lifeFactoryImpl; import com.prototype.pojo.daylife;/** * aplicación principal * * @author * */public class Client {public static void main (string [] args) {// Crear fábrica ilifactory ilifory = new LifeMpl (); // Imprima el contenido predeterminado de DayLife lifefactory.getNewinStance (). Print (); // Obtener la vida de día nuevamente, modificar el contenido de atuendes y el contenido de salida System.out.println ("------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ ----------------------------------------------------------------------------------------------- DayLife2.SetgetUp ("¡Me quedé en la cama por la mañana! ¡Me levanté hasta las 7 :: 30!"Resultados de ejecución
¡Nueva vida diaria!
- ¡El método de construcción ha sido ejecutado! -
Levántate a las 7:00
Toma el autobús a las 7:30
Salga en la parada de autobús cerca de la compañía a las 8:30. Cuando pase por el automóvil de desayuno al lado de la carretera, comprará el desayuno y lo llevará a la empresa para almorzar. Luego tome una siesta en el asiento de la oficina.
El trabajo de la tarde comenzó a las 13:30
Sal del trabajo a tiempo a las 17:30 y diviértete por la noche
----------------------------
Clon Daylife!
¡Quédate en la cama por la mañana! 7 :: 15 ¡Antes de levantarse!
Toma el autobús a las 7:30
Salga en la parada de autobús cerca de la compañía a las 8:30. Cuando pase por el automóvil de desayuno al lado de la carretera, comprará el desayuno y lo llevará a la empresa para almorzar. Luego tome una siesta en el asiento de la oficina.
El trabajo de la tarde comenzó a las 13:30
Sal del trabajo a tiempo a las 17:30 y diviértete por la noche
3. El diseño original de este modelo
1 El método de constructor del objeto no se ejecuta al clonar un objeto
2 copia superficial y copia profunda
4. Use ocasiones
1 El proceso de generación de una contraparte es relativamente complicado, y la inicialización requiere muchos recursos.
2 Cuando desee el prototipo Framework y el objeto generado se separe
3 Cuando otras personas que llaman pueden acceder al mismo objeto al mismo tiempo
Para obtener más información sobre los algoritmos de Java, los lectores interesados en este sitio pueden ver los temas: "Estructura de datos Java y tutorial de algoritmo", "Resumen de las puntas de nodo de operación de Java DOM", "Resumen de Java Archivo y TIPS de operación de directorio" y "Summary of Java Cache Operation Tips" TIPS ""
Espero que este artículo sea útil para la programación Java de todos.