Терминология: каково различие между классом и компонентом?

Это нигде не рядом столь же релевантно, как это однажды было. В наше время любой популярный форум будет веб-. Например, stackoverflow был бы очень дерьмом, если базирующийся вокруг NNTP. Вы просто не можете обеспечить тот же опыт, когда Ваше взаимодействие с программным обеспечением форума так ограничено.

Другая большая проблема состоит в том, что Вы не можете отобразить КАПЧУ по NNTP или действительно обеспечить любую другую современную интерактивную меру против спама.

я сказал бы да, это практически мертво.

5
задан andrewdotnich 13 August 2009 в 07:25
поделиться

5 ответов

как насчет использования фазы или роли проекта для их различения?

Например, компонент - это единица времени проектирования (системные архитекторы, дизайнеры), тогда как класс - это единица времени реализации (программисты). Таким образом, дизайнеры говорят о компонентах (или подсистемах, или модулях, прямоугольниках высокого уровня на чертеже вашей архитектуры), тогда как программисты говорят о компонентах и ​​классах (которые реализуют компоненты).

В соответствии с этим представлением компонент реализуется одним или несколькими классами.

11
ответ дан 18 December 2019 в 14:49
поделиться

В этом (гипотетическом) контексте компонент можно рассматривать как серию классов.

Однако в зависимости от технологии, которую вы используете, компоненты могут быть больше, чем набор классов. т.е. они могут иметь дополнительные свойства и функциональные возможности, которые не являются частью классов, которые их формируют. например, компонент COM +.

Так что это действительно зависит от конкретной ситуации.

1
ответ дан 18 December 2019 в 14:49
поделиться

Я часто думаю о Компоненте в смысле UML (см. Описание Википедии ), где он представляет собой «модульную часть системы». В этом смысле он имеет тенденцию представлять большую часть функциональности, чем класс, и на самом деле может состоять из нескольких классов.

Я хотел бы уделить внимание разработке компонентов:

  • Как его можно использовать повторно. В частности, каковы варианты использования, которые гарантируют реализацию чего-то в качестве компонента, а не специального кода (в качестве выпускника я делал все повторно используемым!)
  • Обеспечение разумного интерфейса (ов) и в в некоторых случаях используются дополнительные упрощенные интерфейсы, возможно, с использованием шаблона Facade .

Надеюсь, что это поможет.

2
ответ дан 18 December 2019 в 14:49
поделиться

Вы также можете использовать IDataReader.GetSchemaTable , чтобы получить список всех столбцов в считывателе. представляет собой модульную часть системы который инкапсулирует его содержимое и чье проявление заменимо в своей среде.

Компонент определяет свое поведение с точки зрения предоставленные и необходимые интерфейсы. Как такой компонент служит типом соответствие которых определяется этими предоставленные и необходимые интерфейсы (включая их статику как а также динамическая семантика). Один компонент может быть заменен другим, только если два типа соответствует. Более крупные части функциональность системы может быть собраны путем повторного использования компонентов как части в охватывающем компоненте или сборка комплектующих и проводка вместе их необходимые и предоставленные интерфейсы.

Когда вы используете это определение, кажется, что все компоненты связаны с инверсией управления .

Если посмотреть на платформу .NET в качестве примера, то интерфейс IComponent действительно предоставляет IComponent . Сайт . GetService для достижения инверсии управления через шаблон поставщика услуг. Более легкая альтернатива - внедрение зависимостей.

1
ответ дан 18 December 2019 в 14:49
поделиться

Э?

Компонент «Загрузка файла» может состоять из множества классов: страница для получения файла, класс для его сохранения и т. Д.

-1
ответ дан 18 December 2019 в 14:49
поделиться