keyown = 0
4th December 2015  /  12 21

Зачем ООП

Разумеется правильного ответа никто не знает. Но два самые главные пользы следующие:

1. УПРОЩЕНИЕ ПОНИМАНИЯ ЧЕЛОВЕКОМ

2. ЛОКАЛИЗАЦИЯ ВЛИЯНИЯ КОДА

1. Упрощение понимания — человеком. Ведь наш, человеческий, язык так и устроен. Помните шутку про «утку»?

Что такое «стул»? «Вот это стул, на нем сидят». Это одновременно и поведение, и предмет.

Человек привык обозначать _класс предметов схожего поведения_ одним словом, которое определяет его поведение.

Что же удивительного в том, что эта практика перекочевала в программирование?

Ведь гораздо проще рассуждать о стеке, чем об «этом наборе данных и кода, который отдает первым последний занесенный объект».

Давайте представим себе неправильную разработку приложения. Например, есть структура с данными пользователя и есть структура записи журнала. При сохранении на диск с ними нужно работать одинаково — рассматривать их как непрерывный блок данных. Однако, эта работа не была проделана. Не было ВЫЯВЛЕНО ПОВЕДЕНИЕ. Значит в любом месте у нас дублируется код записи в файл, системные вызовы и т.д.

2. Локализация влияния.



Начинаем расширять — хотим транзакционную запись. Как быть? Ее нужно прикрутить ее _ко всем местам_, где есть запись на диск.

И т.д. Через какое-то время расширение приложения становится СЛИШКОМ дорогостоящим. Получаем то, что называют «монолитное приложение». Это плохо, вроде бы все это понимают.

Внимание — вопрос. А что является «антимонолитным» приложением? Остановитесь, подумайте. Какая она — идеальная архитектура?

Все просто — она легко РАСШИРЯЕТСЯ в рамках поставленных задач.

Как этого достичь?

Правильный ответ такой — нужно выделить одинаковое поведение и запрограммировать его в одном месте.

Следующий вопрос — одинаковое поведение «чего»? Компонента, класса, объекта? А это важно?


Link

WWW+Programming





The basic of WWW programming.
PHP
Geo:Russia & other NIS

Work out

Нажмите, чтобы вернуться на головную страницу
Нажмите, чтобы перейти к анализу по темам