Patrones de Software
Patrones de Software
Patrones de Software
Otro aspecto más a destacar es que los patrones de diseño no son un ente estático,
sino que evolucionan atendiendo a los nuevos retos que surgen con los avances en el
área de la programación.
Hoy en día, podríamos considerar dividir los patrones en las siguientes categorías:
Definen cómo puede crearse un objeto. Habitualmente esto incluye aislar los detalles de
la creación del objeto, de forma que su código no dependa de los tipos de objeto que hay
y, por lo tanto, no deba ser modificado al añadir un nuevo tipo de objeto.
• Abstract factory
• Builder
• Dependency injection
• Factory method
• Lazy initialization
• Multiton
• Object pool
• Prototype
• RAII
• Singleton
Su función es determinar cómo las clases y objetos se combinan para formar estructuras.
Estas estructuras permitirán que se agreguen nuevas funcionalidades
• Adapter
• Bridge
• Composite
• Decorator
• Delegation
• Facade
• Flyweight
• Front controller
• Marker interface
• Module
• Proxy
• Twin
Patrones de diseño de comportamiento
Tratan a los objetos que manejan tipos particulares de acciones dentro de un programa.
Éstos encapsulan procesos debe ejecutarse dentro de la funcionalidad de la aplicación,
como interpretar un lenguaje, completar una petición, moverse a través de una secuencia
o implementar un algoritmo.
• Blackboard
• Chain of responsibility
• Command
• Interpreter
• Iterator
• Mediator
• Memento
• Null object
• Observer
• Servant
• Specification
• State
• Strategy
• Template method
• Visitor
• Closure
• Currying
• Function composition
• Functor
• Monad
• Generator
Patrones de diseño de concurrencia
• Active object
• Actor
• Balking
• Barrier
• Binding properties
• Coroutine
• Compute kernel
• Double-checked locking
• Event-based asynchronous
• Fiber
• Futex
• Futures and promises
• Guarded suspension
• Immutable object
• Join
• Lock
• Messaging
• Monitor
• Nuclear
• Proactor
• Reactor
• Read write lock
• Scheduler
• Thread pool
• Thread-local storage
Patrones de diseño de arquitectura
Dan una descripción de los elementos y el tipo de relación que tienen junto con un
conjunto de restricciones sobre cómo pueden ser usados
• ADR
• Active record
• Broker
• Client–server
• CBD
• DAO
• DTO
• DDD
• ECB
• ECS
• EDA
• Front controller
• Identity map
• Interceptor
• Implicit invocation
• Inversion of control
• Model 2
• MOM
• Microservices
• MVA
• MVC
• MVP
• MVVM
• Monolithic
• Multitier
• Naked objects
• ORB
• P2P
• Publish–subscribe
• PAC
• REST
• SOA
• Service locator
• SN
• SBA
• Specification
Patrones de diseño de computación distribuida (Contenerizacion)
• Ambassador
• Anti-Corruption Layer
• Bulkhead
• Cache-Aside
• Circuit Breaker
• CQRS
• Compensating Transaction
• Competing Consumers
• Compute Resource Consolidation
• Event Sourcing
• External Configuration Store
• Federated Identity
• Gatekeeper
• Index Table
• Leader Election
• MapReduce
• Materialized View
• Pipes
• Filters
• Priority Queue
• Publisher-Subscriber
• Queue-Based Load Leveling
• Retry
• Scheduler Agent Supervisor
• Sharding
• Sidecar
• Strangler
• Throttling
• Valet Key