- Всегда использовать регионы для разграничения логики в классе.
- Состав и порядок основных регионов определён ниже.
- Между основными регионами пустой строки нет.
- Для legacy-кода внутри основных регионов могут встречаться вложенные регионы. Так, например, регион
Migrations
вложен в регионPublic
в примере ниже. - Вложенные регионы обособляются пустой строкой от внешнего сверху и/или снизу. Между идущими подряд вложенными регионами пустой строки нет.
- Вложенные регионы допустимы только для legacy-кода. В новом коде вложенные регионы не должны встречаться.
Состав и порядок основных регионов для Java:
Constants
- Константы класса. При большом количестве констант регион можно разбить наPublic constants
,Protected constants
иPrivate constants
.Fields
- Поля класса. При большом количестве полей регион можно разбить наPublic fields
,Protected field
иPrivate fields
.Ctor
- Конструкторы класса.Static factories
- Статические фабричные методы.Public static
- Публичные статические методы класса.Public
- Публичные методы экземпляра класса.Protected static
- Защищённые статические методы класса.Protected
- Защищённые методы экземпляра класса.Private static
- Приватные статические методы класса.Private
- Приватные методы экземпляра класса.
Состав и порядок основных регионов для TypeScript:
Constants
- Константы класса. При большом количестве констант регион можно разбить наPublic constants
,Protected constants
иPrivate constants
.Inputs
- Входящие данные "тупого" Angular компонента.Outputs
- Исходящие события "тупого" Angular компонента.Fields
- Поля класса. При большом количестве полей регион можно разбить наPublic fields
,Protected field
иPrivate fields
.Ctor
- Конструкторы класса.Hooks
- Методы Angular-компонента, представляющие его этапы жизненного цикла.Getters and Setters
-get
иset
методы TypeScript'а.Public static
- Публичные статические методы класса.Public
- Публичные методы экземпляра класса.Events
- Обработчики событий.Protected static
- Защищённые статические методы класса.Protected
- Защищённые методы экземпляра класса.Private static
- Приватные статические методы класса.Private
- Приватные методы экземпляра класса.
Пример для Java:
/**
* <p>...</p>
*/
public final class ClassName {
//region Constants
/**
* <p>...</p>
*/
private static final String STRING_CONSTANT = "string constant value";
//endregion
//region Fields
/**
* <p>...</p>
*/
private final SomeService someService;
/**
* <p>...</p>
*/
private final HttpClient httpClient;
//endregion
//region Ctor
/**
* <p>Конструктор класса ...</p>
*
* @param someService ...
*/
@Inject
public ClassName(SomeService someService) {
this.someService = someService;
this.httpClient = HttpClient.newBuilder()
.version(HttpClient.Version.HTTP_1_1)
.build();
}
//endregion
//region Public
//region Migrations
/**
* <p>Возвращает ...</p>
*
* @return ...
*/
public List<String> getMigrationLocations() {
return ...;
}
//endregion
//endregion
}
Для Typescript аналогично.