|
1 / 1 / 0
Регистрация: 01.05.2015
Сообщений: 84
|
||||||||||||||||
Ограниченный доступ к изменению значения полей класса27.09.2016, 16:21. Показов 2814. Ответов 27
Метки нет (Все метки)
Приветствую, ценителей красоты кода.
Вот код: 2 класса «A» и «AUnit», один из которых содержит список экземпляров другого. В AUnit есть поле Name. Нужно иметь возможность менять значение этого поля, но только в том случае, если предлагаемое новое значение не используется в других экземплярах класса AUnit, которые содержаться в том же листе экземпляра класса A.
Если же добавить метод в класс А, типа
Можно конечно сделать в классе AUnit функцию, в которой одним из параметров будет массив недопустимых имён, но это какnj некрасиво.
Ещё как вариант в конструктор AUnit передать указатель на экземпляр класса A, тем самым получив доступ ко всему списку. И в Set поля добавить проверку. Вариант конечно, но может есть какие-то ещё уже устоявшиеся способы решения проблемы? Задача то вроде не самая редкая. Жду с интересом предложений.
0
|
||||||||||||||||
| 27.09.2016, 16:21 | |
|
Ответы с готовыми решениями:
27
Изменение значения полей класса Значения полей класса при присвоении Ограниченный доступ к переменным класса |
|
1 / 1 / 0
Регистрация: 01.05.2015
Сообщений: 84
|
||
| 27.09.2016, 19:02 [ТС] | ||
|
Собствено пример - есть у нас листы, в рабочей книге екселя. Хочется переименовать лист, но нельзя чтоыб имя совпадалао с уже существующим.
0
|
||
|
|
||
| 27.09.2016, 19:02 | ||
0
|
||
|
1 / 1 / 0
Регистрация: 01.05.2015
Сообщений: 84
|
|||
| 27.09.2016, 19:09 [ТС] | |||
|
Добавлено через 1 минуту Я там кстати чуть выше ответил на вопросы о самой задаче, ... просто скопирую на случай если пропустили и не заметили.
0
|
|||
| 27.09.2016, 19:19 | |
|
0
|
|
|
5878 / 4755 / 2939
Регистрация: 20.04.2015
Сообщений: 8,361
|
|||||||||||
| 27.09.2016, 19:22 | |||||||||||
|
JustOneQuestion,
предложу добавить в класс A из исходного сообщения метод:
Использовать просто:
0
|
|||||||||||
|
1 / 1 / 0
Регистрация: 01.05.2015
Сообщений: 84
|
||
| 27.09.2016, 19:46 [ТС] | ||
|
Даценд
Кстати да, рефлексия это как вариант конечно. Но он настолько же изящный и законный как вламывающийся в закрытую дверь топором лесоруб... Хотя ща это модно ![]() Но да, вариант вполне рабочий. Даже если и не слишком быстрый то не критично - менять такие значения будут не слишком часто. Но может есть идея без нарушения инкапсуляции? Может просто классы надо как-то иначе создать. Что касается самой задачи(исходной точки изза котоырй и вопрос темы возник) я ещё раз повторю. (из другой темы скопировал)
0
|
||
|
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
|
||||||
| 27.09.2016, 19:47 | ||||||
|
на корректность проверять лень. но компилируется
мой велосипед - что-то типа описание концепции при необходимости можно при добавлении передавать не список параметров, а экземпляр класса, куда упакованы все нужные параметры. ну и соответственно править под это остальное
0
|
||||||
|
1 / 1 / 0
Регистрация: 01.05.2015
Сообщений: 84
|
||||||
| 27.09.2016, 22:24 [ТС] | ||||||
|
Добавлено через 2 часа 36 минут
https://msdn.microsoft.com/ru-... 73120.aspx Есть идеи о минусах подхода?
0
|
||||||
| 27.09.2016, 22:24 | |
|
Помогаю со студенческими работами здесь
28
Как получить доступ к изменению переменной из другого класса? Доступ к значениям полей класса Ограниченный доступ к сети через 5 минут теряется доступ к интернету
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер.
Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
|
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта
Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
|
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром.
возможно получится прикрутить интерпретатор питон для кастомизации игровой логики.
что есть на текущий момент:. . .
|
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2.
Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
|
|
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|