Именование классов в C # (или любом другом языке) - PullRequest
2 голосов
/ 14 января 2012

У меня часто бывает такая ситуация - есть простой простой класс, скажем, Article.И есть еще один класс, который хранит все статьи и мета-информацию о них.Я обычно называю это ArticlesManager.Но я читал, что это плохая практика - иметь такие слова, как Менеджер, Класс в имени класса.Итак, как мы должны называть его и как мы должны называть его пространство имен, если класс Article находится в пространстве имен Models?

Ответы [ 3 ]

3 голосов
/ 14 января 2012

Как насчет названия (как вы сделали в своем вопросе) ArticleMeta?

2 голосов
/ 14 января 2012

Большим недостатком называть что-то "менеджером" является то, что класс имеет тенденцию брать на себя слишком много обязанностей после этого и начинает нарушать принцип единственной ответственности.

Представьте, например, класс, обрабатывающий хранение статей в базе данных и именующий класс ArticleStore, а не ArticleManager. Когда следующему программисту понадобится место для перевода статей, какой из классов с большей вероятностью получит этот несвязанный код?

Это не означает, что называть что-то "ArticleManager" - это нет-нет, если оно действительно имеет смысл как имя того, что делает класс, это просто означает, что это очень общее имя и пытается сузить имя тому, что на самом деле делает класс, - хорошая практика.

1 голос
/ 14 января 2012

Короче говоря: если ArticleManager дает лучшее описательное понимание, чем все остальное, о чем вы только можете подумать, просто назовите его ArticleManager.

Давно: во-первых, вы должны правильно спроектировать свое решение. если после этого ваш класс лучше всего описать как «ArticleManager», тогда, golly, вызовите ArticleManager. не зацикливайтесь на соглашениях об именах. Соглашения существуют в виде практических правил, предназначенных для адаптации (или игнорирования), если есть логическая (и хорошо продуманная) причина.

Мой собственный пример: в .net вы «не должны делать переменные общедоступными», что верно в 99% случаев. В 1% случаев это неверно, если использование свойств имеет измеримое снижение производительности по сравнению с голыми переменными.

...