вопрос по ооп

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

mika2607

Здравствуйте. Хотела спросить у вас как лучше организовать иерархию классов в такой программе как Adobe Reader. А точнее, в собственном аналоге.
Например, родительским классом будет некий объект программы как AdobeAcrobatReader, от него наследуются другие. Какие поля и методы (то бишь свойства) могут быть у этого класса?
Также: что следует от него наследовать: классы жирный текст, обычный, курсив и растровое / векторное изображение? Либо наследованные классы будут типа строка/ абзац?
Сама программа не нужна, хочу понять как организовано с точки зрения ооп.
 
E

European

Возьмите книгу Гаммы и компании "Приемы объектно-ориентированного проектирования. Паттерны проектирования", там описаны все лучшие практики ООП на примере текстового редактора. Только предупреждаю сразу, что с Вашими знаниями ООП читать ее будет очень тяжело
 
I

ierofant

Adobe Reader не самый удачный пример... А вообще в текстовых редакторах или просмоторщиках текста в качестве базого класса наиболее часто используется класс, которому дают имя Glyph (Глиф):

От него потом начинают шагать дальше.

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!