Structural patterns are used for defining the static properties of the system (see Class diagram).
Example: Factory pattern can be used to create entities which constitute your system. You can have object Button
that have different graphical properties on Windows vs. OS X. Factory pattern will create the Button
regardless of the OS and the created object will have the same interfaces on both OSs expose the same behavior despite having different internals.
Behavioral patterns are used for defining the dynamic behavior of the system (see Activity, Sequence etc. diagrams).
Example: Adapter pattern can be used at runtime to transparently allow interfacing of 2 entities that do not share interface between them. It effectively changes the behavior of an object at runtime.