Всего скорее под стереотипом понимается паттерн проектирования.
Для более подробного осзнакомления рекомендую Гамма, Влисидес и др. "Паттерны проектирования" (на английском издавалась в 1994, в России издает ИД "Питер").
Здравствуйте, Суслик, Вы писали:
С>Добрый день.
С>Посоветуйте, пожалуйста, что-нибудь почитать (лучше на русском и в сети), для того, чтобы понять, что такое стереотип?
С>Тимохов Дмитрий.
Как уже ответили, скорее всего, под стереотипом подразумеватся "паттерн".
В таком случае было бы небезполезно почитать GoF (Gang Of Four), но если вы программируете на С++ лучшим вариантом был бы Modern C++ Design.
В общих словах, как я понимаю паттерны — это модели класса оторванные от реальных данных, из которых можно строить приложение аки из кубиков "Лего".
К примеру, есть паттерн "Singleton
".
Его принцип заключается в том, что класс который реализует этот паттерн должен не позволять создавать более одной копии себя и быть доступным глобально. Применение: от класса Logger до App и Keyboard.
Разрешается опять же терминологическая проблема — вместо того чтобы сказать "Класс App является доступным глобально и не позволяет создавать более одной копии себя (за счёт защищеного конструктора)", я скажу — "Класс App реализует шаблон Синглетон".
Даже библиотека паттернов существует, Loki называется
Здравствуйте, _chipset, Вы писали:
_>Здравствуйте, Суслик, Вы писали:
С>>Добрый день.
С>>Посоветуйте, пожалуйста, что-нибудь почитать (лучше на русском и в сети), для того, чтобы понять, что такое стереотип?
С>>Тимохов Дмитрий.
_>Как уже ответили, скорее всего, под стереотипом подразумеватся "паттерн". _>В общих словах, как я понимаю паттерны — это модели класса оторванные от реальных данных, из которых можно строить приложение аки из кубиков "Лего". _>К примеру, есть паттерн "Singleton
". _>Его принцип заключается в том, что класс который реализует этот паттерн должен не позволять создавать более одной копии себя и быть доступным глобально. Применение: от класса Logger до App и Keyboard. _>Разрешается опять же терминологическая проблема — вместо того чтобы сказать "Класс App является доступным глобально и не позволяет создавать более одной копии себя (за счёт защищеного конструктора)", я скажу — "Класс App реализует шаблон Синглетон".
"Стереотип" — понятие из UML. Используется для указания категории элементов — например, если нам нужно указать, что какой-то элемент на схеме — это интерфейс, или если некий класс "является доступным глобально и не позволяет создавать более одной копии себя" — помечаем его, соответственно, <<Интерфейс>> или <<Singleton>>. Фактически, стереотип — это что-то вроде "типа" элементов UML.
Почитать стоит что-нибудь толковое по UML — Лармана, Фаулера.
Здравствуйте, IT, Вы писали:
IT>В учёных кругах не утихают споры о том что же такое Синглетон — паттерн или антипаттерн
В силу того, что inversion of control — это очень модно, singleton стоит называть антипаттерном. Но вечная любовь к переменным, объявленным глобально, спасёт паттерн Singleton
К слову: имеется модуль, который должен использовать некий ресурс. Что лучше: модуль сам находит ресурс (aka Singleton, Registry, Broker, etc.), или ссылку на ресурс передают в модуль (IoC)?
Здравствуйте, Ransom Stark, Вы писали:
RS>Почитать стоит что-нибудь толковое по UML — Лармана, Фаулера.
Ларман практик. У него изложение ориентировано на решение задач, а не на то, чтобы объяснить нотацию используемого языка моделирования. ИМХО.
Фаулер, Скотт — хорошая книга (я видел два издания — по 1.3 и 1.4, кажется). Но как я говорил где-то раньше — читая их складывается ощущение, что они очень хотят меня убедить использовать UML, при этом несильно углубляясь в формальное описание нотации и приведение примеров. Фаулер, как мне кажется, больше практик — протри его Архитектуру корпоративных программных приложений — там горомя диаграммы классов и последовательностей почти ничего нет.
Здравствуйте, Суслик, Вы писали:
С>Добрый день.
С>Посоветуйте, пожалуйста, что-нибудь почитать (лучше на русском и в сети), для того, чтобы понять, что такое стереотип?
С>Тимохов Дмитрий.
Я прочитал все ответы очень странно — народ попутал стереотипы UML со стереотипами OOD!!!
так на пример: стереотип "актер" на диграмме UseCase и "актер" на диаграмме классов — разные вещи. Советую различать эти понятия. В UML стереотип — это семантический значок. В OOD — это поведение объекта.
Здравствуйте, Mishka, Вы писали:
M>К слову: имеется модуль, который должен использовать некий ресурс. Что лучше: модуль сам находит ресурс (aka Singleton, Registry, Broker, etc.), или ссылку на ресурс передают в модуль (IoC)?
Второе гораздо правильнее, не кошерно
... << RSDN@Home 1.1.4 beta 5 rev. 395>>
Если нам не помогут, то мы тоже никого не пощадим.
Здравствуйте, Суслик, Вы писали:
С>Добрый день.
С>Посоветуйте, пожалуйста, что-нибудь почитать (лучше на русском и в сети), для того, чтобы понять, что такое стереотип?
С>Тимохов Дмитрий.
Если в контексте UML, то стереотип это
A Stereotype is used to extend the information that can be stored in the model for a given entity. The extra information is described by the attributes of the stereotype.
Здравствуйте, _Obelisk_, Вы писали:
_O_>Если в контексте UML, то стереотип это _O_>A Stereotype is used to extend the information that can be stored in the model for a given entity. The extra information is described by the attributes of the stereotype.
Это-то понятно, я это тоже читал.
Я бы хотел пояснить суть вопроса. Когда-то тут я спросил, чем отличается паттерн Стратегия от паттерна Состояние. Главный мой тезис был — разве могут они отличаться, если у них совершенно одинаковые диаграммы классов (в GoF). Некий форумчанин мне очень граммотно объяснил концептуальную разницу. Можно сказать, с тех пор у меня вопросов по поводу паттернов не возникает — всегда нужно искать концепцию, тогда все будет ясно.
Со стереотипами тоже самое — зная формальное описание, я не могу представить концепцию, исходя из которой я бы мог начать использовать стереотипы.