Сама библиотека не предназначена для того, чтобы быть публичной библиотекой, к которой каждый может получить доступ, в большинстве других товарищей по команде, возможно, придется редактировать ее части, но они все равно будут соблюдать определенные шаблоны / соглашения
Из описания того, что вы действительно пытаетесь сделать и добавили в свой вопрос, похоже, что это не проблема "безопасности" как таковая, а скорее вы ищете лучшее программированиереализация / соглашение для вашей локальной команды, которая будет использовать этот интерфейс, чтобы другим разработчикам было понятно, какое состояние «защищено» и используется только внутри реализации, а не от внешних потребителей объектов.
В этом случае я бы просто использовал соглашение о подчеркивании, когда имя свойства объекта, начинающееся с подчеркивания, как в this._someProperty
, предназначено только для внутреннего использования в методах самого объекта (аналогично «защищенному»)."члены в C ++), а не для внешнего использования потребителями или пользователями объектаct.
Затем сообщите об этом в документе для реализации и устно с командой, с которой вы работаете, чтобы убедиться, что все не только понимают это соглашение в коде, который вы пишете, но и чтобы они также могли последовательно использовать одно и то жесоглашение в их коде.
Так как это не кажется, у вас есть реальная потребность в безопасности здесь, причины пойти с этим типом подчеркивания "соглашение" вместо более вовлеченных решений, которые обеспечивают некоторую реальную защитуданные от других разработчиков (например, что вы пытались сделать):
- Реализация проще
- Нет снижения производительности
- Не мешает модульности и размещенияпроизводные классы в отдельных файлах
- Бесконечно расширяемые на столько свойств, сколько классов
- Легче обучить команду, с которой вы работаете,
Однажды один из старших разработчиков поделился со мной словами: «Мой код должен быть таким простымнасколько это возможно для достижения целей (правильность, стабильность, тестируемость, ремонтопригодность, расширяемость и повторное использование) ».Это помогло мне стремиться к простоте в реализации и избежать чрезмерного проектирования за пределы того, что действительно необходимо.