Членская организация класса

Ваша проблема в том, что вы рассматриваете экземпляр Matrix как массив; это не. Он имеет массив. Если вы хотите манипулировать внутренним массивом экземпляра newArray (я настоятельно рекомендую переименовать эту переменную в newMatrix), то вы можете сделать это, открыв newArray.array.

6
задан Georg Fritzsche 7 August 2010 в 16:46
поделиться

10 ответов

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

11
ответ дан 8 December 2019 в 13:03
поделиться

Я изучил эту точную проблему как часть моей магистерской диссертации.

Алфавитная организация или организация на основе общедоступного/частного лучше для способности найти определенные вещи. Однако в некоторых IDE можно установить инструмент схемы на вид в алфавитном порядке и использовать специальные индикаторы для общедоступного/частного.

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

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

2
ответ дан 8 December 2019 в 13:03
поделиться

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

Некоторые также находят полезным организовать средства доступа и модификаторы вместе в отдельных участках.

3
ответ дан 8 December 2019 в 13:03
поделиться

Это - просто мое мнение, которое я уверен, будет непопулярно, но проблемой с семантической сортировкой является свое субъективное. У каждого человека будет различное мнение о том, чем методы должны быть близко друг к другу.

Алфавитный имеет преимущество, что это совершенно объективно. Это также уменьшает большой diffs для небольших изменений, который распространен, когда один кодер выбирает другое семантическое упорядочивание.

Большинство IDE имеет основы или гиперссылки для создания навигации легче.

Править: Разъяснение - я все еще вид общественностью сначала к частному, но алфавитный на том же уровне доступа. На самом деле я не делаю никакой сортировки - я позволяю своему IDE обратиться файл для меня при сохранении.

1
ответ дан 8 December 2019 в 13:03
поделиться

Я никогда не ищу участника путем прохождения через кода. Когда я хочу перейти к членскому определению, я или выбрать его из панели навигации / схема документа / представление класса, или я щелкаю правой кнопкой и выбираю "Переход к определению". Вы не должны сортировать участников, если у Вас есть достойный IDE. Это работает очень хорошее в Visual Studio и другом IDE, который я использую в случае необходимости, KDevelop, поддержки, по крайней мере, основы этого.

Так или иначе я склоняюсь к элементам группы функциональностью, т.е. всем полям / свойства / методы, которые являются частью некоторой определенной функциональности, вместе. И так как классы не должны быть слишком длинными, это достаточно.

1
ответ дан 8 December 2019 в 13:03
поделиться

Вы пишете телефонную книгу?

С семантическим подходом можно легко показать то, что является самыми важными методами. Я обычно иду с Конструктором, Деструктор сначала, затем важные методы, сопровождаемые методами считывания и методами set и в конечном счете разными методами. Наконец, я проявляю аналогичный подход для внутренних деталей (закрытые методы, атрибуты...).

Алфавитный порядок не передает полезной информации о Вашем классе. Если Вы действительно хотите видеть методы, отсортированные в алфавитном порядке, необходимо полагаться на функцию IDE.

0
ответ дан 8 December 2019 в 13:03
поделиться

Можно пойти от семантического до алфавитного путем сортировки "дисплея методов" в IDE.

Вы не можете пойти (автоматически) от алфавитного до семантического.

Следовательно: семантический.

0
ответ дан 8 December 2019 в 13:03
поделиться

Принятие Вас использует современный IDE, находя метод, который Вы хотите, редко больше чем два щелчка мышью далеко, таким образом, я не уверен, что наличие конкретного способа организовать Ваши методы получило бы Вас. Я действительно использую stylecop (http://code.msdn.microsoft.com/sourceanalysis), который имеет меня заказывающий общественностью / частный / метод / свойства - я нашел что быть достаточно анальным.

Единственное время я когда-либо истинно думал, что это было важно, - когда я записал очень большую jscript программу и редактора в то время, когда не предложил справки в нахождении функций. Алфавитная организация была очень полезна. При расположении в алфавитном порядке не трудно выяснить, какой путь в файле необходимо пойти для нахождения метода. Семантическая организация была бы абсолютно бесполезна.

0
ответ дан 8 December 2019 в 13:03
поделиться

В более высоком уровне я организовал бы свой класс этот путь:

  1. Конструктор
  2. Деструктор
  3. Частные поля
  4. Свойства
  5. Методы/Функции

Затем для методов/функций я сломал бы его снова функциональностью. например, Я поместил бы методы, которые реализуют интерфейс в один регион, я поместил бы методы обработчиков событий в один регион и т.д...

RWendi

0
ответ дан 8 December 2019 в 13:03
поделиться

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

Прежде всего, по моему опыту, группирование методов "семантически" имеет тенденцию быть раковиной времени. Теперь, если мы говорим о группировке их по объему / видимости, это другое дело. Но затем, если член меняет свою область видимости, вам придется потратить время на перемещение члена, чтобы код оставался актуальным. Я не хочу тратить время на перетасовку кода, чтобы соблюдать подобное руководство.

Я также не большой поклонник регионов. Когда свойства и методы сгруппированы по области действия, они, как правило, требуют включения в область. Но включение кода в сворачивающиеся области имеет тенденцию скрывать плохо написанный код. Пока вам не нужно на него смотреть, вы не будете беспокоиться о его рефакторинге, чтобы сделать его поддерживаемым.

Так что я предпочитаю алфавитную организацию. Это просто, прямо и по делу. У меня нет соблазна объединять группы в регионы. А так как IDE позволяет легко перескочить к функции или собственности определения в любом случае, физическое расположение кода является спорным. означает, что вы хотели, чтобы люди в первую очередь сосредоточили внимание на ваших публичных членах. Современные IDE делают этот в значительной степени бессмысленным аргументом в пользу макетов, основанных на области видимости.

Но самое большое преимущество алфавитных макетов заключается в следующем: печатные образцы кода во время проверки кода. И я их много использую. Это упрощает поиск функции или свойства. Если вам когда-либо приходилось пробираться через большой объем кода, чтобы найти функцию или свойство, когда вещи не были просто перечислены в алфавитном порядке, вы поймете, о чем я говорю.

Но, как говорится, это мои субъективные взгляды на предмет. Ваш пробег может отличаться.

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

Но самое большое преимущество алфавитных макетов заключается в следующем: печатные образцы кода во время проверки кода. И я их много использую. Это упрощает поиск функции или свойства. Если вам когда-либо приходилось пробираться через большой объем кода, чтобы найти функцию или свойство, когда вещи не были просто перечислены в алфавитном порядке, вы поймете, о чем я говорю.

Но, как говорится, это мои субъективные взгляды на предмет. Ваш пробег может отличаться.

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

Но самое большое преимущество алфавитных макетов заключается в следующем: печатные образцы кода во время проверки кода. И я их много использую. Это упрощает поиск функции или свойства. Если вам когда-либо приходилось пробираться через большой объем кода, чтобы найти функцию или свойство, когда все не было просто перечислено в алфавитном порядке, вы поймете, о чем я говорю.

Но, как говорится, это мои субъективные взгляды на предмет. Ваш пробег может отличаться.

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

Но самое большое преимущество алфавитных макетов заключается в следующем: печатные образцы кода во время проверки кода. И я их много использую. Это упрощает поиск функции или свойства. Если вам когда-либо приходилось пробираться через большой объем кода, чтобы найти функцию или свойство, когда вещи не были просто перечислены в алфавитном порядке, вы поймете, о чем я говорю.

Но, как говорится, это мои субъективные взгляды на предмет. Ваш пробег может отличаться.

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

Но самое большое преимущество алфавитных макетов заключается в следующем: печатные образцы кода во время проверки кода. И я их много использую. Это упрощает поиск функции или свойства. Если вам когда-либо приходилось пробираться через большой объем кода, чтобы найти функцию или свойство, когда все не было просто перечислено в алфавитном порядке, вы поймете, о чем я говорю.

Но, как говорится, это мои субъективные взгляды на предмет. Ваш пробег может отличаться.

Мне когда-либо приходилось пробираться через большой объем кода, чтобы найти функцию или свойство, когда вещи не были перечислены просто в алфавитном порядке, вы поймете, о чем я говорю.

Но, как говорится, это мои субъективные взгляды на предмет. Ваш пробег может отличаться.

Мне когда-либо приходилось пробираться через большой объем кода, чтобы найти функцию или свойство, когда вещи не были перечислены просто в алфавитном порядке, вы поймете, о чем я говорю.

Но, как говорится, это мои субъективные взгляды на предмет. Ваш пробег может отличаться.

0
ответ дан 8 December 2019 в 13:03
поделиться
Другие вопросы по тегам:

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