простое объяснение ООП PHP по сравнению с Процедурным?

Не должно быть никакой проблемы с использованием HttpRuntime. Кэш. Это - сложная хеш-таблица в оперативной памяти, которая может быть очень полезной за пределами веб-контекста. Однако, это могло бы быть что-то вроде запаха кода для ссылки на HttpRuntime. Кэш в non-Http связал приложение, таким образом, это может быть хорошая идея обернуть его позади некоторого интерфейса ICache и использования это по мере возможности.

103
задан Pennf0lio 7 October 2009 в 10:51
поделиться

3 ответа

Справочная информация: Вы попросили «простое объяснение», которое предполагает:

  1. Вам нужен серьезный обзор без жаргона
  2. Вы хотите что-то, что поможет вам учиться с самого начала
  3. Вы обнаружили, что никакие два человека никогда не отвечают на вопрос одинаково , и это сбивает с толку. Вот почему вы просите здесь простого объяснения. Да?

Краткий ответ без жаргона:

  1. Многие вводные объяснения быстро переходят в примеры "ООП реального мира". Они могут больше сбивать с толку, чем помогать, так что не стесняйтесь пока игнорировать.
  2. Вы можете думать об исходном коде просто как о «фрагментах» функциональности, которые случайно сохраняются в отдельные файлы.
  3. Есть различные способы организации этих «блоков»; в зависимости от таких вещей, как условные обозначения языка программирования, опыта и подготовки разработчиков или просто старых личных предпочтений.
  4. ООП и процедурное программирование - это просто две основные, общепризнанные методологии для того, как организовать и упорядочить эти «куски» кода.

Длинный ответ без жаргона:

Процедурные и ООП - лишь один из аспектов фундаментальной проблемы компьютерного программирования: как сделать ваш код легким для понимания и просто профессионально поддерживать . На самом деле вы можете написать «процедурный» код, который следует некоторым принципам ООП, поэтому эти два понятия не обязательно противоположны.

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

Вот краткий обзор того, что вы узнаете по мере создания опыта:

  • Вы можете написать исходный код PHP, который выполняет полезные задачи
  • Вы можете организовать полезные задачи в «фрагменты» кода
  • Вы можете думать о «фрагментах» методов и свойств

    • методы - это просто функции, которые логически связаны друг с другом некоторым значимым образом. Слова «метод» и «функция» - это в основном два разных термина для одного и того же.
    • свойства - это просто значения данных, которые связаны с классом. Это значения, которые намеренно не изолированы от какой-либо отдельной функции, потому что более чем одна из функций в классе должны иметь к ним доступ.
      • Например : если в вашем классе есть несколько методов для выполнения астрономических задач, свойства класса могут быть значениями некоторых известных чисел, о которых должны знать все методы астрономии (например, Пи, скорость света, расстояние между конкретными планетами и т. д.)
    • Это место, где большинство объяснений ООП сбивают с толку , потому что они переходят в « примеры реального мира », которые могут быстро получить не по теме . Часто «реальный мир» является эвфемизмом для онтологических перспектив конкретного человека. Это, как правило, полезно только тогда, когда вы уже понимаете концепцию достаточно хорошо, чтобы научить ей кого-то еще.
    • Чтобы понять ООП без путаницы, вы можете пока пропустить примеры из «реального мира» и просто сосредоточьтесь на коде. Класс - это просто способ хранить функции (также известные как методы) и свойства (также известные как данные) в виде кода PHP в одном или нескольких связанных «фрагментах» , где каждый отдельный «кусок» имеет дело с определенной темой или частью функциональности. Это все, что вам нужно знать, чтобы начать работу.
  • Класс полезен, потому что он позволяет вам организовать ваш код на очень высоком уровне таким образом, чтобы вам было легко понять, использовать и поддерживать.

  • Когда кто-то написал много функций и организовал их в множество классов и заставил их работать вместе каким-то классным способом, они упаковывают все вместе и называют это a «Фреймворк» .
  • Фреймворк - это просто следующий по высоте уровень «фрагментации» (включая стиль кодирования и соглашения), с которыми согласны один или несколько человек, потому что им нравится, как организован код, и он соответствует их стилю работы, предпочтениям, ценностям, планам мирового господства и т. Д.

См. Также

270
ответ дан 24 November 2019 в 04:13
поделиться

Вы должны изучить оба. Объекты - это лишь одна из многих возможных существующих абстракций, а абстракция - это, в конечном счете, все, что есть в программировании. Тем не менее, начните с процедурных вещей, а затем добавляйте объекты позже, потому что внутренняя структура объектов PHP в любом случае процедурна.

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

6
ответ дан 24 November 2019 в 04:13
поделиться

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

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

Объектно-ориентированный подход в основном используется для того, чтобы сделать ваш код более логичным путем разделения всего на простые блоки. Объединив правильные блоки, вы получите полную заявку. OO - это не серебряная пуля или золотой молоток, который решит все ваши проблемы. Но то, что он делает, упрощает понимание вашего кода.

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

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

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

25
ответ дан 24 November 2019 в 04:13
поделиться
Другие вопросы по тегам:

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