If you are building your code by trying to put together a few design patterns you are doing it wrong.
You should reason about your application, design it to fit your goals. If some of your design turns out to be a exact or very similar version of an existing design pattern, you name that code after the design pattern to make it easier to recognize this familiar pattern.
I have encountered a few people out there (very smart people) that have done some coding and when reading it, I discover a design pattern hidden by custom names. The very idea of design patterns is that they other developers should recognize them and thus having design pattern, but not organizing your code after it misses the very idea.
For example, if you are rolling a MVC architecture, split the application into one model, view and controller layer named just that. Don't create a bunch of files named x, y, z and make them behave as a design pattern. Of course this applies to class names/functions etc.
So my suggestion is to first think about the design from a bird's eye perspective, figure out what layers you want, often de-coupling / few dependencies is a goal for a well designed application.
Once you have that down, you can start to look if your solution would be or close to be a design pattern and make sure it is clear in your code.
For example, you might decide that you want 3 tier system that decouples the rendering, the logic and the data (http://en.wikipedia.org/wiki/Multitier_architecture).
For the rendering you decide a data-oriented component based system would fit best, while you roll a chain of command structure to handle the logic in the logic layer.
Also looking into the model you might decide to make it a more standard OO design of those since those are not run in an update loop and cause cache misses.
For communication between those layers you might find that the observer pattern is close to the design of the logic->data layer, while producer/consumer is more close to the rendering->logic layer.
This is pretty hard to get right from the start, it requires a lot of experience, which you only get by doing it. Good luck :)