The 4th is not stated well at all. It’s possible to apply a lot of things to a lot of situations. That doesn’t necessarily make it helpful, or reduce workload. Sure, I could implement a factory pattern when I have a car that can be 2 different colors in my game. Is that more efficient? Not really, but it’s possible.
Again, the observer pattern is overkill. Each setting only effects one value. So, while all the setting values are in one place, each would still, in essence, have to have its own separate listener. The observer pattern is to notify several objects in a certain event, not just one at a time. You may as well make each setting a separate subject and register one observer each.
This is all if we are talking about game configuration settings like volume, resolution, full screen, and the like. Now, if it’s something in game that cause objects to do something as a reaction (think an RTS where, for example, you set the mode to “attack” and each unit needs to receive that message), than sure. But, that’s not the case. These configurations don’t really even need to tell anyone that they’ve changed. Whenever you play an audio file, it plays at the volume that was last set, which you just poll your properties file for. You don’t need to tell the audio player that the volume changed, unless you just want to set a local volume variable. No one else cares about that value, though. When you turn on AA, you don’t really even need to tell anyone then, either. Since that should be some persistent state, than all graphics will automatically be drawn with AA on the next frame. Maybe you tell the rendering context, but again, you are effecting a single object due to a single value change.
There’s nothing complicated about game settings, and it doesn’t get complicated regardless how many you add. You add the value to a file, then you access the file to get the value. You add a new value, you instantly have a new setting. Simple as that. That’s already completely decoupled, and you didn’t even need a pattern. Though, I would still argue that a Singleton would be a good idea here for easier access to the settings file.
At this point, I guess it’s just opinion. I’ve detailed my point as I failed to do in my first point. If you really want to believe an observer pattern would be more useful here that no pattern at all, than I guess I don’t technically have a right to judge that as wrong.
And @Roquen, for anyone that plans to get a degree in Computer Science (like I did), a class in Design Patterns generally isn’t an option. Even if it is, there will be a Software Engineering course you have to take that will throw patterns into the mix. To say you shouldn’t take the class though is something I disagree with. Ever taken one? You learn patterns a lot better than just browsing the Internet. And a lot more. Sure, you can look at a list of 50 patterns online, but that doesn’t mean you understand how to use them.
And to add to your “protip” if you want a language that will really test your logic skills, dabble in Prolog. Logic, to me, is the most important skill a programmer needs to refine. This language does that for you better than any other.