Использование “основы” в имени класса

Помимо playerPrefs, другой грязный способ заключается в том, чтобы сохранить объект во время загрузки уровня, вызывая DontDestroyOnLoad на нем.

DontDestroyOnLoad (transform.gameObject);

Любой скрипт, прикрепленный к игровому объекту, сохранится, а также переменные в скрипте. Функция DontDestroyOnLoad обычно используется для сохранения целого GameObject, включая прикрепленные к нему компоненты, и любые дочерние объекты, которые он имеет в иерархии.

Вы можете создать пустой GameObject и поместить только скрипт, содержащий переменные, которые вы хотите сохранить на нем.

27
задан jrockway 4 February 2009 в 11:02
поделиться

12 ответов

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

9
ответ дан Grzenio 14 October 2019 в 14:28
поделиться

Я принимаю сторону "нет" по точно причине рефакторинга, которую Вы процитировали.

класс А нужно назвать в честь того, что он логически представляет, и только Класс объекта действительно действительно Основа. Метафизика ftw :)

<час>

ре: Опция B, нет ничего путающего приблизительно

namespace MySpecificNamespace
{
  MyClass: MyCommonNamespace.MyClass
  {
  }
}
8
ответ дан annakata 14 October 2019 в 14:28
поделиться

Классы, которые имеют то же имя как их родительские классы, прослушивают меня ни к какому концу. В Java java.sql. Дата расширяет java.util. Дата. Это является очень раздражающим, потому что необходимо указать точный класс, Вы хотите импортировать или иначе указать имя класса полностью (включая пакет/пространство имен).

Лично я предпочитаю называть вещи, как они; если Базовый или Абстрактный класс существует только для обеспечения частичной реализации чего-то и не представляет интерфейс для той вещи, часто приемлемо поместить слово Краткий обзор или Основа на ее имя. Однако, если тот класс представляет интерфейс также, то необходимо просто назвать его в честь того, что он делает.

, Например, в Java, у нас есть интерфейс Connection (для соединений с БД). Это только что назвало Соединение, не IConnection. Вы используете его как это:

Connection con = getConnectionFromSomewhere();

при создании драйвера JDBC и потребности реализовать соединение у Вас могли бы быть ConnectionBase или AbstractConnection, который является нижним уровнем детали реализации Вашего конкретного Соединения. Вы могли бы иметь

abstract class AbstractConnection implements Connection

class OracleConnection extends AbstractConnection

или что-то как этот. Клиенты Вашего кода, однако, никогда не видят AbstractConnection, и при этом они не видят OracleConnection, они только видят Соединение.

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

пикосекунда я очень не хочу назвать Интерфейсы со мной. Люди называют все свои классы с C? Это - 2009! Ваш IDE может сказать Вам, какой объект то есть, в нечетном случае, когда даже имеет значение, если это - интерфейс или класс.

5
ответ дан Mr. Shiny and New 安宇 14 October 2019 в 14:28
поделиться

"Все Ваши BaseClass, принадлежат нам".

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

5
ответ дан JohnFx 14 October 2019 в 14:28
поделиться

Я думаю, что стоит викифицировать этот вопрос.

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

4
ответ дан Matt Hamilton 14 October 2019 в 14:28
поделиться

Я также предложил бы нет, но не бросать в камне...

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

Тем не менее, если Ваш объект действительно абстрактен и Вы действительно не видите, что он изменяется в ближайшее время, существует аргумент, что добавление 'Основы' помогает с общей удобочитаемостью.

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

основа, используемая где-нибудь еще?

3
ответ дан Ali Parr 14 October 2019 в 14:28
поделиться

Я также не принимаю сторону никакого лагеря... помещают Основу туда сегодня, и через 6 месяцев кто-то будет бить класс MyDerivedClass в Вас кодовая база, в то время как Вы не смотрите.

2
ответ дан Michael Prewecki 14 October 2019 в 14:28
поделиться

Префикс "Краткого обзора" , возможно?

1
ответ дан Anton Gogolev 14 October 2019 в 14:28
поделиться

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

Без интерфейса я назвал бы абстрактный базовый класс Foo.

1
ответ дан starblue 14 October 2019 в 14:28
поделиться

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

1
ответ дан Matthew Olenik 14 October 2019 в 14:28
поделиться

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

на Этот вопрос трудно ответить, потому что это абстрактно. Я мог бы, например, рассмотреть вызов основы MyClassA и MyClassB, "MyClass".

0
ответ дан David Grant 14 October 2019 в 14:28
поделиться

Я обычно иду с IFoo для интерфейса и AbstractFoo для скелетной реализации, которая является соединением конвенций Java и.NET.

0
ответ дан cdmckay 14 October 2019 в 14:28
поделиться
Другие вопросы по тегам:

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