Can't be ordered Design patterns - elements of reusable object-oriented software Gamma, E. Helm, R. Johnson, R. Vissides, J.