Действительно ли Класс является особенным, когда он не имеет никаких участников?

Я просто понимаю, что некоторые мои классы не имеют никаких участников. Это имеет несколько государственных функций и возможно закрытых функций, и все, проходит через параметрические усилители. Я понимаю, что функциональные программисты делают это все время, но этот класс считают особенным, если он ни к чему не получает доступ за пределами класса, и только использует его параметрические усилители для чтения (за исключением параметрических усилителей и возвращаемых значений)?

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

- редактирование - Это похоже на Wiki так позволяет, делают его один.

8
задан 3 revs, 2 users 100%user34537 12 May 2010 в 12:19
поделиться

8 ответов

Это только называется «безграждающим». Ничего особенного в этом.

7
ответ дан 5 December 2019 в 07:58
поделиться
[11286689-

Если нет членов, то нет необходимости в классе, кроме имения пространства имен. Если вы программировали в Python, то вы просто поместите эти методы в модуль и не беспокоитесь с классом. Если вы работаете в Java, то класс должен. Если вы работаете в C ++, это зависит от вас - но, возможно, вы должны рассмотреть возможность использования просто пространства имен, вместо класса, чтобы сделать его менее запутанным.

3
ответ дан 5 December 2019 в 07:58
поделиться

Языки программирования Sane позволяют определить функции вне классов, когда функции не требуют каких-либо постоянных данных - если вы можете определить его в соответствующем пространстве имен, тем лучше. Если ваш язык не допускает этого, по крайней мере определите их в статическом классе, поэтому ясно, что состояние не доступа к или мутируется. В целом, хотя это напоминает мне отличную статью на нелогичное злоупотребление классами во имя «чистого Оопа».

2
ответ дан 5 December 2019 в 07:58
поделиться

Ответ на этот вопрос можно найти в диаграммах кода Unicode , где вы найдете дополняющую диаграмму Latin-1 ; это показывает, что U + 00A0 (160 по вашему названию, а не 167 по телу) является неразрушающимся пространством.

-121--1186106-

код символа 160 будет & nbsp;

-121--1186108-

Да, это делает класс полностью безопасным для резьбы и, таким образом, блокировка не требуется. Для меня это фантастический атрибут.

3
ответ дан 5 December 2019 в 07:58
поделиться

Помните, что все методы вашего класса (даже без гражданства) имеют одну специальную переменную - указатель / ссылку на объект - это (я, что угодно), для которых они применяются.

Таким образом, это идеальный смысл в таком классе безделье, если его методы могут быть переопределены: в этом случае вы должны иметь класс для предоставления диспетчеризации это . (Конечно, это просто эмуляция первых классов функций, поэтому, если у вашего языка уже есть смысл в этой технике.)

На данный момент я не могу представить, почему вам нужен урок без гражданства без какого-либо виртуального метода. Если вы не хотите иметь приятное автоматическое завершение в вашем IDE, набрав ObjectName и Dot :)

1
ответ дан 5 December 2019 в 07:58
поделиться

Я бы сделал класс статическим. Я не вижу, какие преимущества это даст, чтобы сохранить его нестатическим. Но опять же - я .NET Developer, а не Java. Языки близки, но есть много тонких различий, о которых я не знаю.

1
ответ дан 5 December 2019 в 07:58
поделиться

его простой класс, в нем нет специальности.

Но я не понимаю, какой толк в публичных или приватных методах, когда в них нет ни одного члена. потому что методы-члены - это те, которые действуют на состояние конкретного экземпляра.

Да, в нем могут быть статические методы.

0
ответ дан 5 December 2019 в 07:58
поделиться

Нет ничего плохого в классе, в котором нет членов; контроллеры делают это очень часто.

Да, можно было бы пойти статически, но не будучи статическим, вы позволяете наследовать от вашего класса без членов, который мог бы добавлять члены по пути, если вы так хотите.

4
ответ дан 5 December 2019 в 07:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: