| Source |
They were not developed intentionally, they were instead created by trial and error and the prevalent ones are the ones that, by natural selection, were proven to be the best ones.
The Gang of Four, are the ones that wrote a book and set the SDP principles down, the book is called "Design Patterns - Elements of Reusable Object-Oriented Software". The two main principles are:
- Program to an interface, not an implementation: Basically programming the classes in order for them to be implementable by other software, resuable and act as pieces of a bigger puzzle.
- Favor composition over inheritance: Classes should implement other classes to complete their functionality, rather than inheriting from them.
- Creational: Create objects on the go as they are being used.
- Structural: The composition of objects is of most importance, mix and match to obtain new functionality.
- Behavioral: Communication between objects is prioritized.
- J2EE: Presentation layer.

El uso más común es en los correos electrónicos que usamos a diario. Al momento de entrar a tú correo, no estás viendo la información directo de la computadora. Lo que está sucediendo es que se observa un reflejo de lo que está guardado en la nube, al entrar al correo solo se está dando acceso a ese espacio y todo lo que se haga se modificara directamente.
¿Qué es Big Data?


But, even when performance is so important, the majority of fixes during the software maintenance is not for it. Main changes are for software evolution. Time changes and programs should too.