Framework é um padrão de arquitetura, em que um conjunto de classes cooperantes constroem um projeto reutilizável para uma classe de software específica. Quanto à adaptação, os Frameworks são classificados nos três tipos descritos a seguir.
I - baseiam-se no conceito de herança e ligação dinâmica que permite uma subclasse reutilizar a interface e a implementação de sua superclasse.
II - baseiam-se no conceito de composição de objetos onde estes não revelam detalhes internos de sua implementação, tendo-se somente acesso à interface do mesmo.
III - baseiam-se no fato de permitirem adaptação tanto por herança e ligação dinâmica, quanto por composição de componentes.
Os tipos descritos de frameworks são denominados respectivamente: