Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 83 84 [85] 86 87 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#1261
,
|
|
|
|
Цитата Повстанець @ Я задал тебе простой вопрос. Почему в объекте "документ" присутствует состояние не участвующее в формировании самого документа. Вы же вместо ответа тянете в сторону встречными вопросами из разряда "дай определение слову "слово"". а почему бы ему там не быть? документ становится более самостоятельным и не зависит от возможностей редактора, разные типы документов могут по-разному реализовывать историю, в зависимости от особенностей форматов, которые они реализуют. редактор может лишь реализовывать какой-то базовый, примитивный, но универсальный метод реализации истории и использовать его только для документов, не реализующих интерфейс истории |
|
Сообщ.
#1262
,
|
|
|
|
Я считаю повстанец занимается словоблудием. Кто как считает? Откуда ты взял вид? |
|
Сообщ.
#1263
,
|
|
|
|
Цитата --Ins-- @ Оттуда же, откуда ты взял историю. Мне показалось, что она там нужна. Я считаю повстанец занимается словоблудием. Кто как считает? Откуда ты взял вид? |
|
Сообщ.
#1264
,
|
|
|
|
почему хрен? каждый класс документа по-своему реализует фичи, которые с ним можно творить, редактор же эти фичи отображает кнопачками на панели, для некоторых базовонеобходимых фич может предоставлять простые реализации. нормальная декомпозиция -- редактор сам по себе, документ сам по себе. что не нравится? |
|
Сообщ.
#1265
,
|
|
|
|
Цитата korvin @ Потому что история изменений никак не влияет на содержимое документа. Имеет лишь коственную связь, а потому и композиция должна быть коственной. а почему бы ему там не быть? |
|
Сообщ.
#1266
,
|
|
|
|
Так сам-то что ответишь? Цитата Две кнопки на форме с одинаковым текстом, цветом, обработчиками событий и т.д., но расположенные в разных местах формы - одинаковы или нет? Я не очень понимаю, зачем тебе сравнивать кнопки... Но ответ очевиден - если в твоей системе позиция является состоянием кнопки, то объекты разные, если нет, то нет |
|
Сообщ.
#1267
,
|
|
|
|
Цитата Повстанець @ Оттуда же, откуда ты взял историю. Во-первых, историю взял не я, раз речь зашла, в моей задаче был флажок "модифицирован". Это не одно и то же. Но и по истории ничего против не имею - почему бы классу документу не хранить историю у себя, предоставляя клиентам интерфейс Undo/Redo, который в зависимости от типа документа может по-разному функционировать. Сама история может быть отдельным классом, что не мешает объекту-документу хранить ее у себя. И это не вид, а модель, а ты вид приплел На вопросы мои ответишь? |
|
Сообщ.
#1268
,
|
|
|
|
Цитата korvin @ Цитата korvin @ так а где ты будешь хранить историю команд? в самих объектах-документах, к которым команды применялись? или заведешь словарь документ->история в объекте-редакторе? мне кажется тут принципиальной разницы нет, но могу ошибаться, кто как считает? Зависит от конкретной задачи. Я бы хранил отдельно, чтобы не нагружать абстракцию документа ненужными вещами. Кроме того, приложению может требоваться единая история команд для нескольких(всех?) документов. Так что... Но все-таки абстрактные документы в вакууме не очень хочется обсуждать. |
|
Сообщ.
#1269
,
|
|
|
|
Цитата D_KEY @ Так сам-то что ответишь? Ответил уже. Сначала критерии одинаковости определить нужно. Можно сравнивать контент документа, тогда документы с одинаковым содержимым и разным состоянием - равны. Сравнивать можно и иначе, но смысла обычно нет |
|
Сообщ.
#1270
,
|
|
|
|
Цитата D_KEY @ Но все-таки абстрактные документы в вакууме не очень хочется обсуждать. абстракция -- одно из ключевых понятий ООП! =)) |
|
Сообщ.
#1271
,
|
|
|
|
Цитата --Ins-- @ Это тоже своего рода история изменения. С низкой глубиной и детализацией.Во-первых, историю взял не я, раз речь зашла, в моей задаче был флажок "модифицирован". Цитата --Ins-- @ А почему бы в таком случае в документе не хранить ещё сразу и вид, который в зависимости от типа документа ещё и по разному бы его показывал? Но и по истории ничего против не имею - почему бы классу документу не хранить историю у себя, предоставляя клиентам интерфейс Undo/Redo, который в зависимости от типа документа может по-разному функционировать. |
|
Сообщ.
#1272
,
|
|
|
|
Цитата D_KEY @ Кроме того, приложению может требоваться единая история команд для нескольких(всех?) документов. Так что... тогда тебе придется в каждом конкретном случае проверять, нужно ли откатить изменения одного документа или нескольких. |
|
Сообщ.
#1273
,
|
|
|
|
Цитата Повстанець @ А почему бы в таком случае в документе не хранить ещё сразу и вид, который в зависимости от типа документа ещё и по разному бы его показывал? Потому что вид определяет сам вид, а не документ. Он может быть такой, а может быть - эдакий. Модель трех чисел можно отобразить в виде таблицы, диаграммы или графика. И от самой модели это не зависит. А флажок "модифицирован" - это просто служебное состояние документа. Еще раз: объект документа это не то же самое, что и содержимое документа. Объект это данные и методы для обработки этих данных. Управление состоянием - это собственно элемент обработки данных |
|
Сообщ.
#1274
,
|
|
|
|
Цитата korvin @ Зачем? Изменение может быть привязано к своему документу. тогда тебе придется в каждом конкретном случае проверять, нужно ли откатить изменения одного документа или нескольких. |
|
Сообщ.
#1275
,
|
|
|
|
Повстанець, повторю вопрос, в .net как с точки зрения декомпозиции классы, нормально спроектированы?
|