который ими управляет (EntityManager).
Естественно, чтобы он ими управлял, они имеют соответственные публичные методы.
Проблема в том, что эти методы доступны для вызова и другим классам, отличным от EntityManager.
В крестах это, конечно, можно решить, просто "подружив" Entity и`EntityManager`.
Но что делать, если язык таких средств не представляет?
В крестах это решается не подруживанием, а например пимплом или объявлением энтити как внутреннего приватного класса менеджера. В других языках это решается в зависимости от того, какие там есть для такой защиты методы. А если язык таких механизмов не предоставляет, то и не надо.
Обсуждают сегодня