When we read about design patterns on the internet we note that there are 3 categories:
Well, for the main part it's a matter of the language. According to my experience the borderline between design and architecture, as far as software is concerned, is a broad river with it's width resulting from the water level which in turn is mainly influenced by the seasons of marketing. Generally the term "design" is used with a strong aspect of the software product's behavior as recognized by end users, whereas "architecture" stands for the technical structure of a software, i. e. the components, libraries, protocols and whatever it needs to fulfill the design. "Design patterns" take two roles: 1st they are regarded as best practices for solving a category of (more or less) standard problems, not prodiucts; 2nd they help the developers to communicate. Staying with your example of a Singleton, it allows us to know what the mechanics are about by just using the word, instead of explaining every time, that we created a single instance by using a designated dataspace (variable or whatever) which is set in a controlled manner and is guaranteed to be the only one, because we protected the constructor of the class etc. So IMHO the short answer to your question is: It depends on who is talking. Does that make some sense?