Els programes orientats a objectes tenen dos tipus d'estructures. Una pot veure's en la jerarquia d'herència de la definicions de classes. L'altra és evident en el patro dels missatges passats quan el programa corre. Aquests missatges revelen una xarxa de conneccions d'objectes.
- La jerarquia d'herència explica com es relacions els objecets per tipus. Per exemple, en el programa de models d'ús de l'aigua, podrien concloure que aquestes Aixetes i Canonades són el mateix tipus d'objectes, excepte que les Aixetes poden ser obertes i tancades i les Canonades poden tenir múltiples conneccions a altres Canonades. Aquesta semblança podria asumir-se en el disseny del programa si les classes Aixeta i Canonada hereden d'una superclasse comuna.
- La xarxa de les connexions d'objecte explica com treballa el programa. Per exemple, els objectes Aparell poden enviar missatges demanant aigua a Vàlvules, i Vàlvules a Canonades. Les Canonades podrien comunicar-se amb l'objecte Edifici, i l'objecte Edifici amb totes les Vàlvules, Aixetes i Canonades, però no directament amb Aparells. Per comunicar amb tots els altres d'aquesta forma, els objectes han de coneixer'ls. Una Aparell podria necessitar una connexió a una Vàlvula, i una Vàlvula a una Canonada, i així altres. Aquestes connexions defineixen una estructura de programa.
Els programes orientats a objectes estan dissenyats per anar distribuint la xarxa d'objectes amb els seus comportaments i patrons d'interacció i per anar ordenant la jerarquia de classes. Això estructura tant l'activitat dels programes com la seva definició.
En aquesta secció