Cuando Java se profundiza en un cierto nivel, inevitablemente encontrará el concepto de patrón de diseño. El modo de diseño se usa ampliamente en los sistemas de tamaño mediano Java. En los sistemas de comercio electrónico, por lo que quiero analizar la aplicación del observador de los ejemplos de comercio electrónico.
Aunque las tiendas en línea son diversas en forma y cada sitio tiene sus propias características, también tiene su comunidad general. .
Específicamente, si el producto en la tienda en línea cambia en términos de nombre y precio, y si el sistema puede notificar automáticamente a los miembros, será una característica importante de la tienda en línea que distingue entre las tiendas tradicionales. Esto requiere agregar el papel del observador al producto del producto, de modo que cuando los detalles del producto cambian, el observador puede observar automáticamente este cambio y realizar actualizaciones oportunas o notificar acciones.
Java API también nos proporciona una interfaz de observador estándar java.util.observer. Solo necesitamos usarlo directamente.
Tenemos que extender java.util.observer para usarlo realmente:
1. Proporcione el método de Add/Elimine Observer;
2. Proporcione métodos de notificación (no esencia) para todos los observadores.
La copia del código es la siguiente:
// La clase de producto puede ser utilizada directamente por JSP para llamar a la clase utilizando USEBean.
El producto de clase pública se extiende observable {
nombre de cadena privada;
precio flotante privado;
Public String getName () {Return Name;}
public void setName () {
this.name = name;
// Establecer el punto de cambio setchanged ();
notifyObServers (nombre);
}
public float getPrice () {precio de retorno;}
public void setPrice () {
this.price = precio;
// Establecer el punto de cambio setchanged ();
notifyObServers (nuevo flotador (precio));
}
// Lo siguiente puede ser el comando de Insertar la base de datos.
public void saveTodb () {
.............
}
}
Notamos que en el método SETXXX en la clase de producto, establecemos el método de notificación.
Aquí hay un vistazo a los códigos de estos observadores, ¿qué tomaron exactamente?
La copia del código es la siguiente:
// Observador nameObServer se usa principalmente para observar el nombre del producto (nombre).
NameObServer de clase pública implementa observador {
Nombre de cadena privada = nulo;
Public void Update (Obj Obj, Object Arg) {
if (arg instanceOf string) {
nombre = (cadena) arg;
// El valor de cambio de nombre del producto está en nombre System.out.println ("nameObServer: Nombre de cambio a"+nombre);
}
}
}
// Observador PriceObserver se utiliza principalmente para observar los precios de los productos.
Class Public PriceObServer implementa Observador {
Precio flotante privado = 0;
Public void Update (Obj Obj, Object Arg) {
if (arg instanciaf float) {
precio = ((float) arg) .floatValue ();
System.out.println ("PriceObServer: cambio de precio a"+precio);
}
}
}
En JSP, podemos ejecutar oficialmente este programa de observadores:
La copia del código es la siguiente:
<jsp: useBean id = "Product" Scope = "Session" />
<jsp: setProperty name = "Product" Property = "*" />
<jsp: useBean id = "nameObs" Scope = "Session" />
<jsp: setProperty name = "Product" Property = "*" />
<jsp: useBean id = "PriceObs" Scope = "Session" />
<jsp: setProperty name = "Product" Property = "*" />
<%
if (request.getParameter ("Guardar")! = NULL)
{
Product.SaveTodb ();
out.println ("¡Los cambios en los datos del producto se guardan! Y el cliente ha sido notificado automáticamente");
}demás{
// Agregar al producto Observer.AdDobServer (nameObs);
Product.AddoBServer (PriceObs);
%>
//request.getRequesturi () es el nombre del programa que genera este JSP, lo que significa llamarse a sí mismo <Form Action = "<%= request.getRequesturi ()%>" método = post>
<input type = Hidden name = "Save" Value = "1">
Nombre del producto: <input type = text name = "name">
Precio del producto: <input type = text name = "Price">
<input type = enviar>
</form>
<%
}
%>
Al ejecutar el programa JSP, aparecerá una interfaz de entrada de formulario. del JSP.
Dado que el concepto de asignación automática de datos Javabeans se usa aquí, el programa real ejecuta automáticamente la instrucción SetName setPrice. Encontrará la siguiente información en la consola del servidor:
La copia del código es la siguiente:
NameObServer: Cambio de nombre a ?????
PriceObServer: ¿Cambio de precio a ??? (el precio del producto ingresado en el formulario JSP);
Esto muestra que el observador ya está actuando.
Al mismo tiempo, obtendrá información sobre el navegador donde ejecuta JSP:
1. Guarde los cambios en los datos del producto y notifique automáticamente a los clientes
Dado que el artículo anterior utiliza el concepto de JSP, implica muchas acciones automáticas.
La copia del código es la siguiente:
Prueba de clase pública {
public static void main (string args []) {
Producto producto = nuevo producto ();
NameObServer nameObs = new NameObServer ();
PriceObServer PriceObs = new PriceObServer ();
// Agregar al producto Observer.AdDobServer (nameObs);
Product.AddoBServer (PriceObs);
Product.SetName ("Orange Is Red");
Product.SetPrice (9.22f);
}
}
Encontrará la siguiente información:
NameObserver: el cambio de nombre a naranja es rojo
PriceObserver: cambio de precio a 9.22
Esto muestra que el observador está actuando.