|
Модераторы: Partizan, gambit |
|
nmn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: 1 Всего: 1 |
здравствуйте
некоторая сущность представляется в виде класса, есть много экземпляров класса у которых есть одинаковые свойства, а есть различные как можно сделать так чтобы набор одинаковых свойств не повторялся в каждом экземпляре класса? набор одинаковых свойств изменяется в процессе работы, так что сделать наследника класса и задать эти свойства статическими для класса не подходит как это можно реализовать? |
|||
|
||||
ivashkanet |
|
|||
Кодю потиху Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Нифига непонятно. Можно на примере?
|
|||
|
||||
nmn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: 1 Всего: 1 |
вот есть класс с набором свойств, эти свойства тем или иным способом характеризуют экземпляр класса. Эти свойства разбиваются на два вида - которые характеризуют вид объекта и сам объект. Первый свойства одинаковые для всех объектов одного вида, вторые различаются для каждого объекта. придумал, нужно сделать нормализацию как в базах данных может еще есть варианты? |
|||
|
||||
KelTron |
|
|||
Опытный Профиль Группа: Участник Сообщений: 745 Регистрация: 8.10.2006 Где: Красноярск Репутация: 9 Всего: 38 |
Статические данные класса не хранятся в каждом объекте, они существуют в единственном экземпляре, но обращение к ним возможно из любого объекта и вообще без создания какого-либо объекта. -------------------- Тысячами незримых нитей обвивает тебя Закон. Разрубишь одну - преступник. Десять - смертник. Все - Бог. Эвенгар Салладорский, основатель Школы Тьмы. |
|||
|
||||
nmn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 593 Регистрация: 26.11.2005 Репутация: 1 Всего: 1 |
проблема в том что у меня может быть только определенное количество таких классов и я не могу создавать их во время выполнения программы |
|||
|
||||
ivashkanet |
|
|||
Кодю потиху Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
nmn, елси честно понятнее не стало. Включаю телепатию.
В ООП это называется Агрегация. Раз несколько классов могут содержать одини и те же свойства, то чтобы не тратить память и не создавать этот объект много раз предлагается использовать фабрику этих объектов (фабрика либо создает новый либо переиспользует старый). Этот подход описан в паттерне Приспособленец. Но прежде чем применять этот подход я предлагаю остановиться и подумать. Агрегацию стоит применять только в том случае, если группа свойств образует группу логически (Адрес, Размер, ...). Объединять Адрес и Фамилию в один агрегат не стоит. Приспособленец довольно сложен в плане реализации и значительно ухудшает понятность кода. В простых случаях лучше использовать подход реализованных в классе Color через статичесткие свойства: Color.Red, Color.Blue, ... СУВ, ivashkanet Добавлено через 1 минуту и 4 секунды
О! Тогда подход класса Color самое оно. |
|||
|
||||
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |