@phpcoder81

Правильно ли я определил классы в ООП?

Парни, в меня уже начало вселяться ООП. Появились два вопроса, которые меня волнуют.

1. Удобно ли писать в стиле ООП небольшие приложения, когда его программирует один программист? Или ООП сделан в основном для командной разработки.

2. Могу ли я контролировать количество запросов к БД в ООП стиле в команде? К примеру мне нужно, чтоб запросов при генерации целого сайта было не более 5, при этом я не в курсе, чем заняты другие кодеры этого проекта. С помощью ООП можно ли этот процесс отследить, или каждый класс будет обращаться к БД по своему методу?

3. Правильно ли я понял сущности самописной CMS. Класс страница (шапка, контент футер), класс витрина товаров, класс товар, класс меню навигационное, класс хлебные крошки.
  • Вопрос задан
  • 575 просмотров
Пригласить эксперта
Ответы на вопрос 3
@Sketcher2010
PHP, python, java developer
1) Конечно удобно. Еще удобнее использовать фрейм-ворки, которые (все) используют ооп
2) Можно использовать синглтон (шаблон singleton) и в нём уже контролировать кол-во запросов. Однако тут я немного могу ошибаться (ибо сложно узнать откуда пришёл запрос: из сообщений или из загрузки страницы)
3) в самописных cms лучше использовать MVC. Тут уже идёт разделение на модели (товар, хлебные крошки), вьюхи (страница, ветрина, меню) и контроллеры, которые связывают это.

Ответил на все два вопроса ;-)
Ответ написан
saboteur_kiev
@saboteur_kiev
software engineer
ООП это не стиль, это парадигма.
Ее можно использовать для написания программ практически любого размера, но неудобно для мелких скриптов.
Стиль это скорее нотации, типа CamelNotation

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

Суть ООП и функционального программирования только в том, как располагать куски кода - по функциям или по методам. Но ограничение доступа связано ни с функцией ни с методом, а с тем, как вы это ограничение реализовали.

Главная идея ООП заключается вот в чем:

Есть данные. Мы их инкапсулирем в класс.
Есть методы, которые манипулируют именно этими данными. Поэтому методы должны тоже находиться в классе с данными.

Если нам приходится добавлять данные, менять их тип и формат, в случае с ООП мы легко правим методы, которые находятся в этом же классе. Можем написать новые методы, можем переделать старые, можем совместить. В случае с функциональным программированием, затраты на переделку программы будут гораздо дороже и запутаннее.
Ответ написан
Комментировать
@Neonoviiwolf
Flutter developer
ООП предназначена, чтобы структурировать код так, чтобы новые возможности вносились малой кровью и позволяет писать меньше кода. Класс "товар" имеет, к примеру, цену и наличие - этот класс будет родителем всех товаров. Дольше расширяем класс "товар", создаём несколько детей: "фототехника", "телефоны" и т.п. Берём класс "фототехника" и создаём детей, которые символизируют производителей (тут можно сразу ввести их сайт и какие либо данные помимо). Далее расширяем класс производителя по его моделям - тут забиваем оставшиеся параметры. Теперь, чтобы добавить ещё какой либо товар из созданных групп, нужно только расширить класс последнего родителя, соответственно кода писать намного меньше. Ну это чисто для пониманию зачем и почему
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы