When I design classes I start modelling them against real world objects. After getting the general layout based on the requirements done I start refactoring, inserting some design patterns here and there, applying SOLID principles among other things.
Someone then approached me and indicated that by definition of a class in a class diagram I should stick to the "model real world objects" phase and exclude all other details beyond that.
I had thought that a class in a class diagram meant the same as the one in OOP which can be anything from actions in a command pattern, to data access repositories (both of which aren't real world objects). Should I be excluding patterns from my class diagrams and stick with the real-world objects designs before refactoring?