Правильно ли я определил классы в ООП?
1) Конечно удобно. Еще удобнее использовать фрейм-ворки, которые (все) используют ооп
2) Можно использовать синглтон (шаблон singleton) и в нём уже контролировать кол-во запросов. Однако тут я немного могу ошибаться (ибо сложно узнать откуда пришёл запрос: из сообщений или из загрузки страницы)
3) в самописных cms лучше использовать MVC. Тут уже идёт разделение на модели (товар, хлебные крошки), вьюхи (страница, ветрина, меню) и контроллеры, которые связывают это.
Ответил на все два вопроса ;-)
ООП предназначена, чтобы структурировать код так, чтобы новые возможности вносились малой кровью и позволяет писать меньше кода. Класс "товар" имеет, к примеру, цену и наличие - этот класс будет родителем всех товаров. Дольше расширяем класс "товар", создаём несколько детей: "фототехника", "телефоны" и т.п. Берём класс "фототехника" и создаём детей, которые символизируют производителей (тут можно сразу ввести их сайт и какие либо данные помимо). Далее расширяем класс производителя по его моделям - тут забиваем оставшиеся параметры. Теперь, чтобы добавить ещё какой либо товар из созданных групп, нужно только расширить класс последнего родителя, соответственно кода писать намного меньше. Ну это чисто для пониманию зачем и почему