Скажем, я пишу смешанный модуль, который добавляет функциональность к стороннему классу. Очевидно, что некоторые методы и переменные экземпляра я хочу сделать доступными для стороннего класса и его клиентов. Они составляют публичный интерфейс модуля mixin.
Но я хочу, чтобы некоторые другие методы и переменные экземпляра были инкапсулированы. Я не хочу, чтобы они были доступны для класса, с которым я микширую, и, в частности, я не хочу, чтобы они случайно переопределяли, затеняли, конфликтовали или иным образом мешали методам класса mixee или переменным экземпляра - либо которые могут существовать в настоящее время или те, которые могут быть созданы в будущем, если сторонняя организация изменяет класс, в который я добавляю.
Какие меры предосторожности мне необходимо предпринять, если таковые имеются, чтобы убедиться, что мой миксин "гигиеничен" таким образом?