пятница, 6 апреля 2012 г.

ООП

В последнее время часто натыкаюсь на критику ООП, что оно не эффективно, плохо и от него надо избавится вообще.
Лично моё мнение, что любая парадигма сама по себе не эффективна. И чтобы получить эффективную и понятную программу приходится прибегать к различным парадигмам. ООП позволяет легко описывать взаимодействия объектов внутри какой-то системы. Фактически для этого оно и было создано, и критиковать ООП за то, что оно не эффективно в других областях по крайней мере не логично, так же как и использовать его. При этом не надо путать использование парадигмы ООП и классов, которые могут быть использованы в другом смысле - просто для удобства или из-за привычки.
Идеи ООП достаточно хороши, но в описании парадигмы не сказано, где их надо применять. Для реализации мультиагентных систем они подходят. А вот для реализации вычислений бессмысленно использовать ООП. По этой причине мне не нравятся языки "чистого ООП" - они представляют в виде отдельных объектов системы то, что не должно быть объектом. А так же внешнее взаимодействие, которое должно представлять из себя нечто иное, рассматривают как объект системы.
И если кратко, то правы обе стороны. ООП - не панацея, и не всеобщее зло. Есть плюсы и минусы, поэтому когда собираетесь написать "чистую" объектно-ориентированную программу задумайтесь: а надо ли это?

Комментариев нет:

Отправить комментарий