Статические классы будут быстрее. Слегка. Но нестатические классы дают вам огромную гибкость, и было бы позором отказаться от него. Вы, возможно, никогда не будете нуждаться в нем, но приятно знать, что это есть, если вы это сделаете.
Примеры:
Вы могли бы когда-нибудь хотите две или более копий одного из этих классов. То, что сегодня представляет собой ваша вселенная, может быть небольшой частью системы завтрашнего дня. Что сегодня является ВС, завтра, только одна из 100 000 звезд.
Возможно, вам будет удобно передать метод модифицированной копии одного экземпляра. Это позволяет помещать написанный код для работы с официальным единственным экземпляром в других целях.
Нестатические классы могут распространять другие классы и интерфейсы. Некоторые из ваших классов одного экземпляра могут захотеть реализовать интерфейс, чтобы они могли время от времени заменять друг друга. И некоторые из них могут использовать одну и ту же функциональность и хотят наследовать от другого класса.
(И там обязательно будет много других хороших причин, тоже.)
Вы могли бы рассмотреть возможность использования Dependency Injection. http://en.wikipedia.org/wiki/Dependency_injection – Win
Они делают совершенно разные вещи, поэтому сравнение их производительности не имеет особого значения. Либо вам нужно иметь экземпляр типа, потому что вы используете поля экземпляра, а методы должны быть нестатическими или не зависят от полей экземпляра, и они должны быть статичными * независимо * от производительности, поскольку нет зависимости там. Только один из двух фактически представляет то, что вы делаете, используйте то, что есть. Использование «другого» варианта, когда это не имеет смысла, не стоило бы делать, даже если бы оно имело незначительную разницу в производительности. – Servy
Более эффективен чем? Что такое «эффективность»? Другие показатели могут быть более важными. Поднимаемость, удобочитаемость и расширяемость приходят в голову. – spender