The following class defines a template for printing a order invoice to company 1.
Similarly, there are separate classes that define the template for printing order invoices to respective companies.
I have read questions asked on SO here, here, here and here where they emphasis this point:
Use a noun or noun phrase to name a class
But, for eg.
PrintTemplateClient1
(which is a verb) for naming a class seems to be fine for me rather than using a noun here.
Any ideas how to name this ?
Do kindly let me know if this question does not belong here so i can move to relevant forum.
I suspect the word "print" is confusing things here. You probably wouldn't think of it as a problem if it were PdfTemplateClient1
for example. However, I would try to put the noun at the end - I'd use Client1PrintTemplate
, to go along with Client2PrintTemplate
etc. The part that classes have in common usually comes at the end of the name rather than the start (e.g. TextReader
, StreamReader
, StringReader
).
That said, I'd also try to avoid having different code for different companies in the first place... this sounds like the kind of thing that should be handled with data if at all possible - you might want different template renderers for different output formats, but I'd try to avoid them being different for different companies.
See more on this question at Stackoverflow