Во-первых, это очень глупый код.Я предполагаю, что это сокращение для чего-то другого.Но, как представлено, я могу заверить вас, что ваши клиенты могут сами устанавливать свои логические значения без написания для вас процедуры.На самом деле, они могут сделать это лучше.В оставшейся части этого ответа я предполагаю, что вы не пишете переменные для установки логических значений для людей, а скорее делаете что-то реальное.Если нет, проигнорируйте оставшуюся часть этого ответа и просто удалите свои глупые подпрограммы.
Во-вторых, если вы создаете подпрограмму с одним параметром out, то, если объект не окажется очень большим, вы, вероятно, должны сделатьэто функция вместо.Это позволит вашим клиентам использовать функциональное программирование, если они захотят.Как у вас есть, бедный кодер должен остановиться и создать специальную переменную просто для вызова вашей подпрограммы, даже если они хотят сделать это только один раз.
В-третьих, вместо использования уникальной подпрограммы для каждогосостояние я вообще предпочитаю переходить в запрашиваемое состояние.
function Set_Frobnost (New_State : boolean := true) return boolean;
Если государство действительно и по-настоящему логические (не возможно третье состояния в будущем), то спорно.Тем не менее, это может быть большим преимуществом для вашего клиента, если ему, возможно, уже придется сохранять состояние в переменной (или проходить через него).
Ваша правка о присвоении имен показывает, что вы на правильном пути.
Здесь вы должны сделать одну из двух вещей.
- Найти концепцию более высокого уровня, управляемую этой переменной, и назвать после этого подпрограмму "setter".
- Убирайся с дороги и помести переменную flag в спецификацию pacakge.