Политика пакетов Java

Я всегда сомневаюсь при создании пакетов, я хочу воспользоваться преимуществом ограниченного доступа к пакету, но в то же время я хочу, чтобы похожие классы были разделены на пакеты. Проблема возникает, когда вы понимаете, что пакеты не иерархичны в Java:

Сначала кажется, что пакеты иерархические, но это не так. источник

Представьте, что у меня есть API, определенный с его классами в foo.bar, только те классы, которые нужны клиенту API, являются общедоступными. Затем у меня есть другой пакет с некоторыми внутренними объектами, которые мне нужны в API, определенном в foo.bar.pojos, эти классы должны быть общедоступными, чтобы к ним можно было получить доступ из foo.bar, но это означает, что клиент API также может получить к ним доступ, если пакет foo.bar.pojos импортирован.

Какая общая политика пакетов, которой следует придерживаться?

6
задан skaffman 30 June 2011 в 10:05
поделиться