Я программист PHP, но то, что я хочу обсудить, находится под влиянием Java.
Прочитав несколько статей о венгерской нотации и соглашениях об именах для нескольких языков, я доказал, насколько ясны соглашения об именах Java для интерфейсов, и у меня есть один вопрос.
Учитывая случай с коллекциями объектов, где у нас есть абстрактный класс с именем AbstractCollection и конкретный класс с именем Lists, как мне назвать интерфейс для Списки?
Вопрос в том, что в соглашениях об именах Java нет ни префикса, ни суффикса для интерфейсов, таких как ListsInterface или InterfaceLists.
Списки ЯВЛЯЮТСЯ именем интерфейса, и, очевидно, по крайней мере в PHP два файла в одном каталоге не могут иметь одно и то же имя класса или интерфейса.
Я знаю, что не КАЖДОМУ классу нужен интерфейс, но что, если я решу перейти в команду программистов? Другие программисты могут использовать мои классы, но им не следует открывать файлы классов, чтобы посмотреть, какие общедоступные методы они предлагают.
Просто прочитав его интерфейс, все понятно.
Точка структуры каталогов возникла из-за возможности добавить подкаталог с тем же именем интерфейса и внутри него файл конкретного класса. Например.:
/
/Collections
/Collections/Lists.php <-- Interface
/Colection/Lists/Lists.php <--- Concrete Class
Что теперь?