На C++ привык оформлять классы следующим образом
(в заголовочном файле)
class MyClass
{
public:
MyClass();
void Method1();
void Method2();
private:
...
}
Саму реализацию при этом выношу в .cpp или (в случае с header-only библиотеками) объявляю как inline и выношу ниже по тексту, отделив комментарием типа:
/*****************************/
/* Реализация класса MyClass */
/*****************************/
Это позволяет человеку, читающему мой код, быстро изучить интерфейс класса, не вдаваясь в подробности реализации.
Однако, начав изучать Java, аналогичной возможности не нашёл, и очень не хватает способа написания классов с удобно обозреваемой функциональностью. Лучшее, что посоветовали знакомые - описывать отдельно интерфейс и реализовывать его, но для классов, используемых однократно это, IMHO, overkill. Есть ли в Java способ описывать простые классы читабельно, с разнесённым объявлением и реализацией?
Update1: из комментариев стало ясно, что в Java транслятор такой возможности не предоставляет, но аналогичную функцию выполняет javadoc: либо в заголовке файла в Documentation Comments (преимущество: это первое, что видит человек, читающий код), либо после каждой сигнатуры функции (пока не понял, перед телом или после него. Преимущество: документация привязана к описанию функции). Поэтому пока непонятными остаются два момента:
В java такой возможности нет. Вы можете облегчить чтение своего кода, если будете придерживаться соглашений. Например, Java Code Convention
В Java рекомендуют делать компактные классы и методы, что бы их было удобно читать. Немаловажный фактор, облегчающий чтение кода, это именование. По названию сущности должно быть понятно, что она делает и как с ней работать.
Я с вами согласен, что создавать интерфейс для однократно используемого класса - это через чур, но обычно такие классы получаются небольшими и если выбрать правильно имена, то их будет не сложно понять.
Сам по себе язык Java такой возможности не дает, и это, конечно, создает определенное неудобство. Однако современные IDE практически сводят это неудобство на нет. Вот как выглядит, например, фрагмент кода при работе в Eclipse:
Тела методов свернуты, видны лишь их заголовки и первая строчка комментария.
При нажатии по плюсику слева от текста тело метода (или комментарий) разворачивается, можно его прочитать или отредактировать и свернуть обратно.
В тексте при наведении курсора на имя метода или поля всплывает хинт, в котором показано описание этого метода, которое берется из JavaDoc к этому методу.
Заготовка для комментария (JavaDoc) со списком параметров формируется автоматически при вводе начальных символов (/**).
Кроме того, в левой панели (Package explorer) показана структура класса -- ее можно настроить, чтобы там были показаны, например, только публичные методы.
Всё это вместе взятое дает наглядную и удобную для работы картину класса и необходимость в разделении описания интерфейса и реализации совершенно отпадает.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости