Use Layers

In computing, a layer is a way of hiding the working details of a subsystem, allowing the separation of concerns to facilitate interoperability and platform independence. These generalizations arise from broad similarities that are best encapsulated by models that express similarities present in various specific implementations. The simplification provided by a good abstraction layer allows for easy reuse by distilling a useful concept or design pattern so that situations where it may be accurately applied can be quickly recognized. Which leads to, thickness... Thickness in geology and mining refers to the distance across a packet of rock, whether it be a facies, stratum, bed, seam, lode etc. Thickness is measured at right angles to the surface of the seam or bed and thus independently of its spatial orientation. The concept of thickness came originally from mining language, where it was used mainly to indicate the workability of seams. Thus the idea of layering is fundamentally applied to architecture, but its correct application depends on us, in essence.

Use layers, not components.

Lourenço Vaz Pinto