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