Я бачу, що ви робите з 2. Ви використовуєте класи як пакети, а пакети - як модулі, щоб ви могли ізолювати себе в пакеті, але все-таки впорядковувати його в межах пакета за допомогою класів.
Це дуже розумно. Остерігайтеся розумних.
Це змусить вас заклинювати кілька класів у одному вихідному файлі (який ви могли б віддати перевагу), і на шляху з'явиться додаткове слово з великої літери.
Це також змусить вас написати будь-який тестовий код у пакеті, якщо ви не використовуєте роздуми, щоб зламати свій шлях ззовні.
Якщо це не так, це спрацює. Це просто здасться дивним.
Люди більше звикли до внутрішніх класів, які використовуються як EntrySet в Hashtable . Це приватне, тому я не можу його створити, але він реалізує загальнодоступний інтерфейс, тому я просто розмовляю з ним через інтерфейс і щось захоплюю для мене.
Але ви описуєте заняття, з якими не хочете, щоб я спілкувався навіть через інтерфейс. Так що для мене немає інтерфейсу. Це означає, що я не маю на що дивитись і збивати з пантелику (якщо ви не надасте мені джерело).
Найбільша проблема, яку я передбачу, - це заплутана новичка, що підтримує API. Ви можете кидати на них документацію та коментарі, але не завищуйте їх, коли вони не читають і не довіряють ні одному.
Ви створили ще одну модель, яка компенсує дефіцит мови. У Java немає модифікатора доступу, який надає доступ до групи пакетів. Я чув, що був запропонований модифікатор доступу "модуль", але не бачу ознак цього.
Модифікатор доступу за замовчуванням (без модифікатора), швидше за все, ви будете використовувати тут, якщо ви не заперечуєте, щоб я прокрався через спадщину, в цьому випадку захищений.
Modifier Class Package Subclass World
public Y Y Y Y
protected Y Y Y N
no modifier Y Y N N
private Y N N N
Те, що вам справді хочеться, це модульний доступ. Таким чином ви могли б тримати свої тести в одному пакеті, а в іншому - код. На жаль, у нас його немає на Java.
Більшість людей просто роблять 1 і розширюють API. Правильне використання інтерфейсів утримує тиск від впровадження.
Зламати те, що ви хочете в 1, ще жахливіше. Зазирніть у стек викликів і киньте виняток, коли те, що вам дзвонило, із пакету, який вам не подобається. Очі.