Динамическое создание класса
От: Аноним  
Дата: 08.09.03 09:12
Оценка:
Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?
Re: Динамическое создание класса
От: MaximE Великобритания  
Дата: 08.09.03 09:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


А зачем?
Re[2]: Динамическое создание класса
От: Аноним  
Дата: 08.09.03 09:22
Оценка:
Здравствуйте, MaximE, Вы писали:

ME>Здравствуйте, Аноним, Вы писали:


А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


ME>А зачем?


Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?
Вообщем вот такие вот смутные мысли ...
Re: Динамическое создание класса
От: Zelo Украина  
Дата: 08.09.03 09:25
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


Может, попробуешь templates?
Re[3]: Динамическое создание класса
От: Краснокутский Василий Россия  
Дата: 08.09.03 09:31
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, MaximE, Вы писали:


ME>>Здравствуйте, Аноним, Вы писали:


А>>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


ME>>А зачем?


А>Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?

А>Вообщем вот такие вот смутные мысли ...

Советую посмотреть паттерны проектирования — к твоей задаче относиться, я так думаю, Composite
Re[2]: Динамическое создание класса
От: Аноним  
Дата: 08.09.03 09:33
Оценка:
Здравствуйте, Zelo, Вы писали:

Z>Здравствуйте, Аноним, Вы писали:


А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


Z>Может, попробуешь templates?


Как темплейты тут помочь могут ? Объясни в 2 словах, если не трудно
Re: Динамическое создание класса
От: Alexey Shirshov Россия http://wise-orm.com
Дата: 08.09.03 09:34
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


.NET
... << RSDN@Home 1.1 beta 2 >>
Re[3]: Динамическое создание класса
От: Alexey Shirshov Россия http://wise-orm.com
Дата: 08.09.03 09:38
Оценка:
Здравствуйте, <Аноним>, Вы писали:

[]

А>Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?


http://www.rsdn.ru/forum/Message.aspx?mid=377100&amp;only=1
Автор: Alexey Shirshov
Дата: 08.09.03


А>Вообщем вот такие вот смутные мысли ...


Нормальные мысли.
... << RSDN@Home 1.1 beta 2 >>
Re[3]: Динамическое создание класса
От: MaximE Великобритания  
Дата: 08.09.03 09:45
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Здравствуйте, MaximE, Вы писали:


ME>>Здравствуйте, Аноним, Вы писали:


А>>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


C++ статически типизированный язык. Это означает, что можно работать только с объектами, тип которых известен во время компиляции. Как ты собираешься работать с объектами неизвестного типа?

ME>>А зачем?


А>Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?


Читай Фаулера Patterns of Enterprise Application Architecture.
Re[2]: Динамическое создание класса
От: Аноним  
Дата: 08.09.03 09:48
Оценка:
Здравствуйте, Alexey Shirshov, Вы писали:

AS>Здравствуйте, <Аноним>, Вы писали:


А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


AS>.NET


.NET не подходит. Нужено на чистом С++ , мягко выражаясь unmanaged
Re[4]: Динамическое создание класса
От: Аноним  
Дата: 08.09.03 10:03
Оценка:
Здравствуйте, MaximE, Вы писали:

ME>Здравствуйте, Аноним, Вы писали:


А>>Здравствуйте, MaximE, Вы писали:


ME>>>Здравствуйте, Аноним, Вы писали:


А>>>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


ME>C++ статически типизированный язык. Это означает, что можно работать только с объектами, тип которых известен во время компиляции. Как ты собираешься работать с объектами неизвестного типа?


Да, для клиента это будет проблематично.
Мысль такая — клиент знает какие колонки должны вернуться в рекордсете, соответственно он может ожидать что будет созждан динамический класс с полями идентичными по названиям колнкам рекордсета.
А работать он с объектами этого класса сможет например через указатель (или ссылку) на объект базавого класса (можно потребовать чтобы все "динамические классы" наследовались об общего предка).

Проблема только, к чему приводить потом этот указатель


ME>>>А зачем?


А>>Например : во время работы приложения вытащил я из базы некий рекордсет, хочу на его основе сделать коллекцию объектов, с которой потом и работать ... т.к. sql запрос, по которому строится рекордсет заранее неизвестен, то как определить класс для объектов входящих в коллекцию ?


ME>Читай Фаулера Patterns of Enterprise Application Architecture.


Хм, интересные паттерны . Но там только вкратце. Не знаешь где можно полный текст достать. С амазона заказывать дороговато. Может эта книга на русском есть или электронный вариант в сети на английском ?
Re[5]: Динамическое создание класса
От: MaximE Великобритания  
Дата: 08.09.03 10:12
Оценка:
Здравствуйте, Аноним, Вы писали:

А>>>>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


ME>>C++ статически типизированный язык. Это означает, что можно работать только с объектами, тип которых известен во время компиляции. Как ты собираешься работать с объектами неизвестного типа?


А>Да, для клиента это будет проблематично.

А>Мысль такая — клиент знает какие колонки должны вернуться в рекордсете, соответственно он может ожидать что будет созждан динамический класс с полями идентичными по названиям колнкам рекордсета.
А>А работать он с объектами этого класса сможет например через указатель (или ссылку) на объект базавого класса (можно потребовать чтобы все "динамические классы" наследовались об общего предка).

А>Проблема только, к чему приводить потом этот указатель


Что такое "recordset". Грубо говоря это:

typedef map<string, variant> record;
typedef vector<record> recordset;


Т.е. доступ к полям можно осуществлять по имени:

recordset rs(1);
rs[0]["Id"] = new_uuid();
rs[0]["Text"] = "hello, world";


Очевидно, что для этого не требуется создавать классы в run-time

[]

ME>>Читай Фаулера Patterns of Enterprise Application Architecture.


А>Хм, интересные паттерны . Но там только вкратце. Не знаешь где можно полный текст достать. С амазона заказывать дороговато. Может эта книга на русском есть или электронный вариант в сети на английском ?


Не знаю, читал оригинальную.
Re[2]: Динамическое создание класса
От: bkat  
Дата: 08.09.03 10:14
Оценка:
Здравствуйте, Alexey Shirshov, Вы писали:

AS>Здравствуйте, <Аноним>, Вы писали:


А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


AS>.NET


А что, в .NET можно описывать метаклассы?
Re: Динамическое создание класса
От: kulentsov  
Дата: 09.09.03 14:54
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


Как уже сказали, для задачи с рекордсетом новых классов создавать не нужно (к счастью, число типов в SQL ограничено...).
А если рассмотреть задачу саму по себе, то надо копать в сторону интерпретируемых языков — т.е. все хозяйство типа C++, Java и аналоги сразу отодвигаем. (Хотя... Что-то в Java есть на эту тему, класс Compiler, но тут я не компетентен). А вот Javascript это позволяет. (Жалко, что многого другого не позволяет). И в сторону функциональных языков (Prolog), где динамическое программирование в почете.
Re[2]: Динамическое создание класса
От: bkat  
Дата: 09.09.03 14:58
Оценка:
Здравствуйте, kulentsov, Вы писали:

K>Здравствуйте, Аноним, Вы писали:


А>>Понимаю, что дело скорее всего совсем безнадежное, но все же .... Хочется динамически создавать новые классы (не объекты!) во время работы приложения ... в какую сторону копать ?


K> Как уже сказали, для задачи с рекордсетом новых классов создавать не нужно (к счастью, число типов в SQL ограничено...).

K> А если рассмотреть задачу саму по себе, то надо копать в сторону интерпретируемых языков — т.е. все хозяйство типа C++, Java и аналоги сразу отодвигаем. (Хотя... Что-то в Java есть на эту тему, класс Compiler, но тут я не компетентен). А вот Javascript это позволяет. (Жалко, что многого другого не позволяет). И в сторону функциональных языков (Prolog), где динамическое программирование в почете.

На самом деле языки 2-го и более высоких порядков поддаются компиляции,
хотя конечно же интерепретатор написать будет проще и видимо разумнее...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.