More information about all these patterns can be found here.