Названия классов, таких как "com.facebook.FacebookClient" и "com.facebook.Client" - PullRequest
4 голосов
/ 04 июня 2010

Я ищу мнения или, если есть согласованный способ сделать это, относительно именования классов с пространством имен.

например:.

com.facebook.FacebookClient
vs
com.facebook.Client

Или

javax.script.ScriptEngine;
vs
javax.script.Engine;

В настоящее время я предпочитаю имя в каждом примере, но дополнительное слово кажется немного расточительным.

Ответы [ 6 ]

6 голосов
/ 04 июня 2010

Используя в качестве примера Actionscript, я бы сказал, FacebookClient поверх Client. По этой причине:

import com.facebook.Client;
import com.twitter.Client;

Чтобы создать экземпляр в том же классе, вам нужно обратиться к классу по его полному пакету:

new com.facebook.Client();

Если бы это был FacebookClient, я мог бы иметь оба

new FacebookClient();
new TwitterClient();

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

3 голосов
/ 04 июня 2010

Я обычно иду с чем-то вроде:

[название компании]. [Название проекта]. [Функциональная область]. [Категория]

т.е.

com.dave.megaproject.dataaccesslayer.postcodelookup

или в мире .net:

пространство имен DaveFirm.MegaProject.DataAccessLayer.PostCodeLookup

0 голосов
/ 04 июня 2010

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

0 голосов
/ 04 июня 2010

На языке, где имя класса и имя файла однозначны, необходимо задать аргумент для пространства имен, независимо от пакета. Многие люди находят файлы по имени класса, открывая файл с именем <class>.java или используя «Quick Open» в их IDE. Дополнительное умственное затруднение, чтобы решить, какой Client.java вам нужен, может быть достаточно досады, что вы оцените дополнительное наименование.

И это облегчает чтение, и в любом современном редакторе (например, vi или выше) вам не нужно печатать его более одного раза (иногда даже не один раз).

0 голосов
/ 04 июня 2010

Единственное, что мне нужно добавить, это использовать директивы using в C #. Если бы у вас было два пространства имен с одинаковыми именами методов, таких как client, тогда возник бы конфликт / путаница.

0 голосов
/ 04 июня 2010

Есть ли у домена facebook другие клиенты? Есть ли в домене javax.script другие виды движков? Они, вероятно, захотят в будущем? Если это так, вам нужно что-то, чтобы дифференцировать их. В противном случае может быть пустым пространством.

Конечно, будущее почти никогда не определено.

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