вопрос по ооп

  • Автор темы mika2607
  • Дата начала
Статус
Закрыто для дальнейших ответов.
M

mika2607

Гость
#1
Здравствуйте. Хотела спросить у вас как лучше организовать иерархию классов в такой программе как Adobe Reader. А точнее, в собственном аналоге.
Например, родительским классом будет некий объект программы как AdobeAcrobatReader, от него наследуются другие. Какие поля и методы (то бишь свойства) могут быть у этого класса?
Также: что следует от него наследовать: классы жирный текст, обычный, курсив и растровое / векторное изображение? Либо наследованные классы будут типа строка/ абзац?
Сама программа не нужна, хочу понять как организовано с точки зрения ооп.
 
04.09.2006
2 566
2
#2
Возьмите книгу Гаммы и компании "Приемы объектно-ориентированного проектирования. Паттерны проектирования", там описаны все лучшие практики ООП на примере текстового редактора. Только предупреждаю сразу, что с Вашими знаниями ООП читать ее будет очень тяжело
 
I

ierofant

Гость
#4
Adobe Reader не самый удачный пример... А вообще в текстовых редакторах или просмоторщиках текста в качестве базого класса наиболее часто используется класс, которому дают имя Glyph (Глиф):
http://ru.wikipedia.org/wiki/%D0%93%D0%BB%D0%B8%D1%84
От него потом начинают шагать дальше.

Также: что следует от него наследовать: классы жирный текст, обычный, курсив и растровое / векторное изображение? Либо наследованные классы будут типа строка/ абзац?
Понимаете, иерархия наследования в таких проектах нелинейная. Модель построения может быть разная. Те два варианта, что вы назвали, однозначно наследуются от разных предков. Но у их предков, в свою очередь может быть общий предок, а может и не быть. Советую вам прочитать книгу: http://www.labirint.ru/books/87603/

Там как раз создаётся текстовый редактор и на его примере рассматриваются приёмы ООП.

Добавлено: Да, оказывается, и European уже назвал именно эту книгу выше!
 
Статус
Закрыто для дальнейших ответов.