Я думаю, использование шаблонов дизайна в именах - это замечательная идея. Например, в одной из моих игр у меня есть:
GameLevelAbstract
InGameArea
MainMenu
Вторые два класса (InGameArea и MainMenu) подкласс GameLevelAbstract и реализуют его чисто виртуальные методы. Я могу видеть из своего исходного кода, что этот класс абстрактный, и сразу знаю, что это или не то, что я ищу.
Другой пример - мой графический фасад:
GraphicsFacade
OpenGLGraphics
DirectXGraphics
Точно такая же настройка, как у меня выше, за исключением того, что она работает с графикой.
Я считаю использование шаблона дизайна в названии полезным и информативным, когда я ищу класс. Я действительно считаю, что некоторые вещи не должны использоваться в названии, например Singleton, однако Flyweight, Factory или Facade являются примерами названий конструкций, которые, я думаю, хорошо вписываются в имя класса, реализующего эти шаблоны.
Я думаю, что если вы используете хорошие имена классов, которые помогают программисту понять, что делает ваш класс с первого взгляда, это хорошая вещь.
Я не думаю, что указание чего-либо - это структура данных или алгоритм, в большинстве случаев - это хорошо. «LinkedListDataStructure» или «BubbleSortAlgorithm» ничего не добавляют к пониманию программистом класса, поскольку «LinkedList» очевиден в его функции.