Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Созать интерфейс или класс? 
:(
    Опции темы
ckopn
Дата 20.2.2007, 14:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Можно создать файл mdb так:

Код

ADOX.Catalog сat = new ADOX.Catalog ();
cat.Create ("Provider=Microsoft.JET.OLEDB.4.0 Data Source = J:\\NetProjects\\EmployeeDB.mdb");


А можно так:

 
Код

ADOX.CatalogClass cat = new ADOX.CatalogClass();
cat.Create(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=J:\\NetProjects\\EmployeeDB.mdb);


 

КаталогКласс наследует методы от интерфейса Каталог.
Я понял правильно использовать 2й вариант?
В чем разница?
Правильнее создавать обьекты от классов а не от интерфейсов? 
PM MAIL   Вверх
Yama
Дата 20.2.2007, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 2.8.2006

Репутация: 2
Всего: 2



Цитата(ckopn @  20.2.2007,  14:57 Найти цитируемый пост)
КаталогКласс наследует методы от интерфейса Каталог.


Цитата

Интерфейс DLL — это набор функций, экспортируемых ею. Интерфейс класса С++ — это набор членов данного
класса. Однако когда в этой книге я употребляю слово интерфейс, имеется в виду интерфейс СОМ, а не все
прочие. Интерфейс СОМ также включает в себя набор функций, которые реализуются компонентами и
используются клиентами. Но СОМ дает более точное определение интерфейса. В СОМ интерфейсом является
определенная структура в памяти, содержащая массив указателей на функции. Каждый элемент массива
содержит адрес функции, реализуемой компонентом. С точки зрения СОМ интерфейсом является упомянутая
структура в памяти; все остальное — это детали реализации, которые СОМ не касаются. Мы остановимся на этой
структуре в конце главы, после того как посмотрим на ее реализацию с помощью С++.


(С)Основы СОМ 2-е издание, исправленное и переработанное Дейл Роджерсон.

С точки зрения использования СОМ-интерфейсов - правильнее использовать конструктор самого интерфейса, а не соответствующего интерфейсу класса.
В С# и С++ классы не наследуют интерфейсы, а реализуют их, т.к. интерфейс - это просто соглашение о том, какие функции должен содержать класс. Подробнее про интерфейсы написано тут.
--------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию.
PM MAIL   Вверх
ckopn
Дата 21.2.2007, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата(Yama @ 20.2.2007,  15:23)
С точки зрения использования СОМ-интерфейсов - правильнее использовать конструктор самого интерфейса, а не соответствующего интерфейсу класса.
В С# и С++ классы не наследуют интерфейсы, а реализуют их, т.к. интерфейс - это просто соглашение о том, какие функции должен содержать класс. Подробнее про интерфейсы написано тут.

То есть правильно будет вот так:

Код

            CatalogClass catalog = new Catalog();
            TableClass table = new Table();
            ColumnClass column = new Column();

PM MAIL   Вверх
ckopn
Дата 21.2.2007, 09:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Код

            CatalogClass catalog = new Catalog();
            TableClass table = new Table();
            ColumnClass column = new Column();
[/QUOTE]
Так неправильно. 

Это сообщение отредактировал(а) ckopn - 21.2.2007, 09:55
PM MAIL   Вверх
Yama
Дата 21.2.2007, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 167
Регистрация: 2.8.2006

Репутация: 2
Всего: 2



Цитата(Yama @  20.2.2007,  15:23 Найти цитируемый пост)
С точки зрения использования СОМ-интерфейсов - правильнее использовать конструктор самого интерфейса, а не соответствующего интерфейсу класса.

Это с учетом того, что СОМ интерфес возможно инициализировать его же (интерфейса), конструтктором.. т.е. если у интерфейса есть конструктор - то правильнее использовать его. Но можно инициализировать интерфейс и конструктором класса, все зависит от того, что эти конструкторы делают и какй результат тебе надо получить.
--------------------
Если бы строители строили дома так же, как программисты пишут программы, то первый же залетевший в форточку дятел разрушил бы всю нашу цивилизацию.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0421 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.