Форум: "Потрепаться";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Внизпример использования интерфейсов Найти похожие ветки
← →
CHES © (2004-07-22 11:30) [0]Hi All. Подскажите пожалуйста пример, когда использование интерфейсов может реально упростить решение какой-либо задачи. В случай с СОМ понятно.
Никак не могу понять где есть смысл их использовать.
← →
Суслик © (2004-07-22 11:33) [1]аналог множественного наследования.
вообще читайте книги следующего содержания:
uml, проектирование, паттерны проектирования.
авторы Буч, Гамма, (больше не помню).
В этой области интерфейсы применяются очень здорово.
Купите книге Эрик Хармон "Com в дельфи". Она есть на www.books.ru. Там есть несколько примеров.
← →
ИдиотЪ (2004-07-22 11:36) [2]когда ты знаешь, что должно быть снаружи, а внутреннее содержание тебя пока не беспокоит
← →
Sandman25 © (2004-07-22 11:47) [3]Пример из головы.
Что-то должно уметь показывать данные. Если это форма, то она данные показывает на себе. Если это какой-нибудь TObject, то он показывает данные с помощью MessageBox.
Действительно, в основном интерфейсы использую с различными паттернами проектирования (слабое связывание, посетитель, состояние)
← →
iZEN © (2004-07-22 22:31) [4]EJB
← →
Sandman25 © (2004-07-23 09:14) [5][4] iZEN © (22.07.04 22:31)
Это не Delphi
← →
AlexG © (2004-07-24 12:16) [6]Очень простой пример. Если ты не хочешь следить за освобождением памяти, отводимой под твои классы, ереложи эту работу на COM. Она сама автоматически освободит память, если указатель на эту память выйдет за область видимости. Например (на словах):
- создаешь свой класс;
- создаешь интерфейс к нему;
- работаешь с классом через интерфейс;
- При выходе за обл. видимости или при присвоении NIL указателю на, предположим, IMyClass, память, отведенная при создании (ptrMyClass := TMyClass.Create as IMyClass;
), освободится автоматически.
← →
iZEN © (2004-07-25 07:39) [7]to AlexG © (24.07.04 12:16) [6]
COM не может ничего сделать с кольцевыми ссылками.
← →
Piter © (2004-07-25 17:15) [8]CHES © (22.07.04 11:30)
Подскажите пожалуйста пример, когда использование интерфейсов может реально упростить решение какой-либо задачи. В случай с СОМ понятно.
ну так интерфейсы и разрабатывались для поддержки COM. Зачем приводить другие примеры? Все остальное обычно решается классами...
← →
AlexG © (2004-07-25 18:35) [9]to iZEN
Сам СОМ не может, а вот платформа .NET - может.
← →
nikkie © (2004-07-26 04:27) [10]>iZEN
>COM не может ничего сделать с кольцевыми ссылками.
ну для это придуманы всякие "слабые ссылки".
а так даже твоя любимая Java не застрахована от утечки памяти по аналогичной причине.
>AlexG
>Сам СОМ не может, а вот платформа .NET - может.
и как же она справляется?
← →
AlexG © (2004-07-26 23:33) [11]to nikkie
Я сам не проверял, но MS утверждает это. Во всяком случае, мусор убирает (проверено).
← →
nikkie © (2004-07-26 23:48) [12]>но MS утверждает это
утверждает что?
← →
Sergey Masloff (2004-07-26 23:53) [13]Piter © (25.07.04 17:15) [8]
>ну так интерфейсы и разрабатывались для поддержки COM.
Вот так вот. А мужики-то и не знают.
Господин Piter, вы с абсолютно серьезным видом несете полную чушь. Концепция интерфейса появилась лет за ...дцать до того как COM появился.
← →
AlexG © (2004-07-26 23:57) [14]Что механизм сборки мусора у платформы .NET справляется и с кольцевыми ссылками. Оригинал в книге: Разработка Windows-приложений на VB.NET и VC#.NET Учебный курс MCAD/MCSD страница 33, абзац "Циклические ссылки".
Специально книгу достал, чтобы быть точным. Теперь осталось проверить, чтобы убедиться в этом.
← →
nikkie © (2004-07-27 00:13) [15]этой книжки у меня, конечно, нет.
посмотрел, что Рихтер пишет на тему сборщика - как он говорит, .NET-овский сборщик строит граф достижимых объектов. вроде да, при таком методе проблема кольцевых ссылок решается.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.068 c