Sobre los patrones poco puedo ayudar, porque no me los se...  

Vamos, seguro que tú podrías explicarme más sobre ellos que yo a ti.
Sobre las clases, tampoco soy un experto en UML, pero creo que estas podrían ser las clases.
Equipamiento y 
Producto las he puesto como abstractas.
Sin embargo, ya que entre sus hijas no hay atributos que pudieran diferenciarlas unas de otras, en realidad se podría haber resuelto con sendos enumeradores (Enum).
Pero intuyo que la intención del ejercicio es representar relaciones de herencias con estas entidades.
Un 
Espacio puede tener, o no, un 
Equipamiento, por eso remarco que este atributo podría tener valor null.
Reserva se relaciona con 
Espacio a través de su código/ID. Es decir, que 
Reserva no tiene un atributo de tipo 
Espacio, si no un 
String con el código identificador de un 
EspacioUna 
Reserva si puede tener agregadas varias 
Consumiciones, por eso su atributo es un ArrayList.
Y cada 
Consumición consta de un 
Producto