All of them ? none of them ? actually I had/did/heard most of them at least once.
And the only thing I stand by is: context.
the rest I leave up to the team how they decide to design. Because I just want other people to be able to understand the code .... ten years of switching bleeding edge / legacy / languages it boils down to that most of the people will "throw" dogmatic approaches around as long as there is a double standard for themselves :) me included ....
As long as one can explain why one does things in a certain way I don't care.
The only thing I do hate is overly complex things and I do mean the literal meaning of the word not the it's "complicated" meaning. no GOD-Class pls ! ....