Modo básico:
1. Patrón de interfaz: cuando varias clases brindan servicios similares, a través del patrón de interfaz, los servicios comunes proporcionados por diferentes clases de proveedores de servicios se pueden abstraer y declarar como una interfaz independiente. Esto permite que los objetos del cliente utilicen diferentes clases de proveedores de servicios de manera fluida y sin ningún cambio.
2. Patrón de clase abstracto: se puede utilizar para diseñar un marco que proporcione una implementación consistente de las funciones comunes de un conjunto de clases relacionadas. A diferencia de las interfaces, los métodos de las interfaces deben implementarse en subclases. Los métodos necesarios se pueden implementar en clases abstractas y las subclases solo necesitan heredar, lo que reduce la implementación de métodos redundantes.
3. Patrón de método privado: algunos métodos solo pueden ser utilizados internamente por otros métodos o clases internas en el mismo objeto. Este patrón recomienda diseñar dichos métodos como métodos privados.
4. Patrón de acceso: en un objeto, todas las variables de instancia se declaran privadas y se proporcionan métodos de acceso públicos para acceder al estado público del objeto; El objeto tiene acceso directo a sus variables privadas. El javaBean en JSP usa este patrón.
5. Administrador de datos constantes: Muy adecuado para diseñar un mecanismo de almacenamiento eficaz para gestionar los datos constantes utilizados por diferentes objetos en la aplicación. Este patrón sugiere que los datos cuyos valores son permanentes en una aplicación deben almacenarse en un objeto separado para que otros objetos de la aplicación puedan acceder a ellos, en lugar de permitir que aparezcan en diferentes objetos. Este tipo de separación proporciona un repositorio centralizado fácil de mantener para los datos constantes de su aplicación.
6. Objetos inmutables: establezca todas las variables de instancia en el constructor y no proporcione ningún otro método que pueda cambiar el estado del objeto; declare la clase como un tipo fanal para evitar la posibilidad de cambiar el estado anulando los métodos de clase; Todas las variables de instancia están escritas como tipo fanal, por lo que solo se pueden asignar a través del método constructor si alguna de las variables de instancia contiene una referencia a un objeto, entonces el método get correspondiente inggai devuelve una copia del objeto en lugar de realmente el; objeto en sí. El mecanismo anterior puede garantizar la seguridad de los subprocesos y eliminar automáticamente todos los problemas relacionados con el acceso concurrente.
7. Monitor: adquiere un bloqueo en dicho objeto para garantizar que solo un subproceso pueda ejecutar cualquier método del objeto a la vez. Esto se puede hacer en Java utilizando la palabra clave sincronizada en la declaración del método del objeto.
Modo crear:
Rol: Maneja una de las tareas más comúnmente realizadas en aplicaciones OO: crear objetos; admite el uso de mecanismos restringidos simples y consistentes para crear objetos; permite encapsular detalles sobre qué clases y cómo crear instancias admite el uso de interfaces; La generación del acoplamiento.
1. Método de fábrica: si el objeto cliente no sabe qué clase crear una instancia, puede usar el método de fábrica para crear una instancia de la clase correspondiente en la jerarquía de clases o en el grupo de clases relacionado. Los métodos de fábrica pueden diseñarse como parte del propio cliente o pueden diseñarse en clases individuales. Entre ellos, la clase que contiene el método de fábrica o cualquiera de sus subclases determina qué clase se selecciona y cómo crear una instancia de ella.
2. Singleton: proporciona un mecanismo de creación de objetos restringido para garantizar que solo haya una instancia de una clase específica.
3. Fábrica abstracta: permite la creación de instancias de clases dentro de un conjunto de clases relacionadas sin que el objeto cliente especifique la clase concreta real de la que se va a crear una instancia.
4. Prototipo: proporciona una forma sencilla de crear objetos, es decir, copiar objetos de objetos existentes.
5. Generador: permite la creación de objetos complejos, puede proporcionar solo el tipo y la información del contenido del objeto y hace que los detalles sobre la creación del objeto sean transparentes para el cliente. Este enfoque permite que el mismo proceso de construcción genere diferentes representaciones de objetos.