What Software Patterns does the Bitcoin source code use?
i don't think you can find many Object Oriented Design Patterns in the btc-source-code. but there is one example i know:

the blockchain itself is like a composite pattern:
you have a general type called Block. two types inherits Block: MinedBlock inherits from Block and GenesisBlock inherits from Block. A MinedBlock has one attribute of the type Block called PreviousBlock. 
(here you can also find the singleton pattern: you need exactly one GenesisBlock-object.)