Помимо наследования, в веб-разработке в реальном времени другие функции OO играют какую-либо важную роль?


В веб-разработке мы используем java .net или php5. Все они ОО. и иметь все функции OO.

Но на веб-сайтах в реальном времени эти функции OO играют какую-либо важную роль, кроме наследования.?

Может ли кто-нибудь перечислить некоторые из них с примерами в реальном времени.

При разработке приложений может широко использоваться OO. Но в случае веб-сайтов, играет ли OO важную роль? Как?

Author: hakre, 2011-04-29

4 answers

Еще в 1995 году в книге Шаблоны проектирования удалось создать это феноменальное понимание на странице 20:

Предпочтение композиции объектов перед наследованием классов

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

Это относится как к веб-приложениям, так и к любому другому типу приложений.

 6
Author: Mark Seemann, 2011-04-29 17:51:53

Я активно использую инкапсуляцию и полиморфизм. В частности, я довольно активно использую шаблон стратегии (среди прочего), чтобы разделить большую часть своих функций. В сочетании с внедрением зависимостей мне действительно легко отделить функциональность, скажем, моего уровня сохраняемости, от моей бизнес-логики или уровня представления.

Например, тривиально заменить реализацию гибернации реализацией JDBC и т. Д. На самом деле, недавно, Я только что переключился со службы электронной почты, которая работает синхронно с веб-запросом, на службу, которая использует очередь сообщений для асинхронной отправки почты. Все, что мне нужно было сделать, как только я внедрил новый слой, - это изменить, какой класс был введен в мои бобы, которые его используют.

Редактировать: Чтобы ответить на ваш комментарий, @zod, я не использую его так в отношении выполняемых страниц, хотя это случается время от времени (например, у меня есть разные классы для электронной почты HTML и обычная текстовая электронная почта в зависимости от того, что запросил пользователь), но я в первую очередь использую принципы OO в конфигурации приложения. Имеет ли это смысл?

 3
Author: Chris Thompson, 2011-04-29 17:54:28

Для начала пригодятся основные принципы OO.Возьмем, к примеру, инкапсуляцию данных в шаблоне MVC; Тот факт, что у вас может быть модель пользователя, которая выполняет все функции пользователя, означает, что все, что связано с пользователями, инкапсулировано в этой одной модели. Это облегчает добавление и изменение функций в дальнейшем. Расширяемость также пригодится, если вы хотите расширить свою программу с помощью кода, написанного другими людьми. До тех пор, пока вы знаете публичный интерфейс их классы, вы можете их использовать.

 0
Author: bigblind, 2011-04-29 17:45:23

Чтобы привести простой пример, мы, как компания, активно используем его для обеспечения безопасности. У нас есть плагины для различных фреймворков, которые контролируют, кто пытается добраться до какого класса и метода. В дополнение к этому мы можем избежать доступа пользователя к этому классу и методу без добавления дополнительных строк в класс.

Кроме этого, мы также используем их для уточнения кода.

Помимо всех тех, кто занимается ООП, это хороший способ создать большой проект с большой командой.

 0
Author: Harun Baris Bulut, 2011-04-29 17:45:42