Недостатки объектно-ориентированного подхода
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

 

Объектно-ориентированная декомпозиция заметно отличается от алгоритмической, поэтому применение этой технологии связано как с преодолением психологических трудностей, так и с дополнительными финансовыми затратами. Здесь следует учесть расходы на обучение методике, ИС и языку программирования. Для некоторых организаций эти обстоятельства могут стать серьезными препятствиями. Следует заметить, что это не является недостатком собственно объектно-ориентированного подхода, и в дальнейшем эти издержки будут компенсированы теми выгодами, которые сулят объектно-ориентированные технологии.

Недостатки самого объектно-ориентированного подхода лежат в области программирования. Некоторые из них рассматриваются ниже.

Динамическое связывание, предполагающее поиск метода в классе, которому принадлежит получающий сообщение объект, приводит к тому, что обращение к методу занимает в 1,75–2,5 раза больше времени, чем к обычной подпрограмме. Это, конечно, замедляет работу приложения. Однако, как указывает Г. Буч, динамическое связывание при использовании строго типизированных языков применяется примерно в 20 % случаев вызовов методов. В результате снижаются непроизводительные потери времени. В приложениях, где такие потери критичны, приходится прибегать к специальным программистским приемам.

Другой недостаток связан с многочисленностью методов и их излишними вызовами. Это объясняется тем, что для доступа ко многим атрибутам объектов (а к защищенным – всегда) используются специальные методы. Вызов метода высокого уровня абстракции приводит к тому, что в системе происходит каскад вызовов – от методов более высоких уровней иерархии к методам более низких уровней. Если время является ограничивающим фактором, такая ситуация может оказаться неприемлемой. Выход здесь видится в том, что после создания начального варианта системы производится его оптимизация для сокращения количества вызовов. Например, защищенные переменные можно сделать общедоступными и обращаться к ним напрямую, уменьшая тем самым число вызовов.

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

Для задач реального времени, выполняющихся в высоком темпе, нежелательным является динамическое создание и удаление объектов, что также активно используется в объектно-ориентированных языках. Можно размещать такие объекты при создании программы, а не во время работы критичных по времени алгоритмов. Преодоление перечисленных затруднений связано с дополнительной работой программистов, но в то же время не требует очень больших усилий, так как действия, которые надо предпринять, достаточно очевидны. Кроме того, подобные проблемы возникают весьма редко. Следует также заметить, что объектно-ориентированные языки обладают средствами, позволяющими достичь более высокого быстродействия программ по сравнению с традиционными языками.

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

Приложение 4

 

Реинжиниринг

 

Дата: 2019-03-06, просмотров: 180.