За последние 24 часа нас посетили 20963 программиста и 1649 роботов. Сейчас ищут 1707 программистов ...

ООП

Тема в разделе "PHP для новичков", создана пользователем host, 2 авг 2007.

  1. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Здравствуйте. Просмотрел я тему ООП в учебнике, но не могу понять одного: зачем мне использовать классы, объекты, методы, если это можно сделать намного проще и бестрее без него?

    Результат - форма на странице.
    Точно такой же результат я могу получить и без использоавания классов, объектов и методов

    Подскажите зачем применять ООП, когда его применять и какие у него преимущества?
    Вот пример в учебнике:

    Form.inc
    PHP:
    1.  
    2. <?php
    3. /* Имя класса: form
    4. * Описание: класс, создающий простую HTML-форму с
    5. * одним текстовым полем. Класс содержит 3 метода.
    6. */
    7. class Form
    8. {
    9. var $fields=array(); # содержит имя поля
    10. var $processor; # имя программы обработки данных формы
    11. var $submit = "Отправить данные"; # имя кнопки Submit
    12. var $Nfields = 0 ; # количество полей формы
    13. /* Конструктор: передается имя сценария обработки данных
    14. * ($processor) и имя кнопки.
    15. */
    16. function construct($processor, $submit)
    17. {
    18. $this->processor = $processor;
    19. $this->submit = $submit;
    20. }
    21. /* Функция отображения формы.
    22. */
    23. function displayForm()
    24. { echo "<form action='{$this->processor}' method='post'>";
    25. echo "<table width='100%'>";
    26. for($j=0;$j<=sizeof($this->fields)-1;$j++)
    27. {
    28. echo "<tr><td align=\"right\">
    29. {$this->fields[$j]['label']}: </td>\n";
    30. echo "<td>
    31. <input type='text'
    32. name='{$this->fields[$j]['name']}'>
    33. </tdx/tr>\n";
    34. }
    35. echo "<tr><td colspan=2 align='center'>
    36. <input type='submit'
    37. value= ' {$this->submit} ' ></td></tr>\n" ;
    38. echo "</table>";
    39. /* Функция для добавления поля формы. Ее параметрами
    40. * являются имя и метка поля.
    41. */
    42. function addField($name, $label)
    43. $this->fields[$this->Nfields]['name'] = $name;
    44. {
    45. $this->fields[$this->Nfields] [ 'label' ] = $label,-
    46. $this->Nfields = $this->Nfields + 1;
    47. }
    48. }
    49. ?>
    50.  
    PHP:
    1. <?php
    2. /* Имя сценария: buildForm
    3. * Описание: использование класса Form для создания
    4. * простой HTML-формы.
    5. */
    6. require_once ("form.inc");
    7. echo "<html><head><title>ФopMa для добавления телефонного
    8. HOMepa</title></head><body>" ;
    9. $phone_form = new Form("process.php", "Отправить данные");
    10. $phone_form->addField("first_name", "Имя");
    11. $phone_form->addField("last_name", "Фамилия");
    12. $phone_form->addField("phone", "Номер телефона");
    13. echo "<hЗ>Пожалуйста, заполните поля данной формы:</h3>";
    14. $phone_form->displayForm();
    15. echo "</body></html>" ;
    16. ?>
     
  2. Davil

    Davil Guest

    host
    не надо вам его "применять". Делайте как проще, быстрее и удобнее.
    Тем более не надо учиться по устаревшей литературе.
    А когда будет надо, вы сами поймете что, зачем и почему.
     
  3. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Davil
    просто скажите, вообще для чего он, чтобы у меня было общее представление о нем, точнее в каких целях его нужно применять
    PS Ну написано что Учебник для PHP 5, 2005г
     
  4. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Наверное для того, чтобы показать концепцию ООП в PHP 4.
    Точно PHP 5? :) Не похоже...
     
  5. Davil

    Davil Guest

    об стену такой учебник.
    или йадом облить и сжечь как ересь...
     
  6. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Хм... жаль, что та тема закрыта...
    Стасу +1 и респект за вот это сообщение.
     
  7. Anonymous

    Anonymous Guest

    Dagdamor, ничуть не жаль. Страницу оскорблений удалил....
     
  8. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    да уж. мы там с dark-demon-ом чуток перебрали. фигня вышла. всё так хорошо начиналось...
     
  9. Amian

    Amian Активный пользователь

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    stas_t на чём ты будешь проэктировать под процедурное програмирование если не секрет? ~~ Моделировать под ООП намного проще.
     
  10. Amian

    Amian Активный пользователь

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    Сам сталкивался с 2мя методами:

    1 - JSP(Jackson's structure programming) для процедурного
    2 - UML для OOP

    UML намного более удобен :)
     
  11. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    нарисую последовательность экранов в ppoint-е, определю основные формы ввода/вывода, таблицы и команды м-в-к, заверю у заказчика и банко!

    а вы?
     
  12. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    Amian
    в какой из своих ~12 ипостасей умл кажется вам более удобным?
     
  13. Anonymous

    Anonymous Guest

    Все забыли про Моск 1.0-stable
     
  14. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    я ещё не апгрейдился (у меня бета пока :)
     
  15. Amian

    Amian Активный пользователь

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    Кустарные методы проэктировки это конечно то что надо, заказчик будет доволен :) Только не забывай, что проэктированием систем в больших проэктах занимаются не програмисты, а аналитики. Какой имеющийся стандарт подходит для процедурного, который будет более удобен, чем UML ?
    Можно на ты, я думаю младше вас буду :)

    "Ипостасей"? Выражайся яснее ... При проэктировании используется не 1 "предпочтительная диаграмма", а их совокупность. Насколько я понимаю , тебя УМЛ чем-то не устраивает? Можно узнать чем ? Изобретать отсебятину конечно удобнее, но только будет ли это удобно для других? Для этого и существуют стандарты ...
     
  16. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    опять начинается... пойду, пожалуй, домой
     
  17. host

    host Активный пользователь

    С нами с:
    20 июн 2007
    Сообщения:
    733
    Симпатии:
    3
    Amian
    Покажи на примере, где ООП использовать проще, в отличие от других методов без ООП?
     
  18. Davil

    Davil Guest

    Покажи на примере, в какой толчок удобнее ходить, в сельский, али в домашний?
     
  19. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Davil
    Какой воздух лучше, сельский или городской?
    А вообще это аргумент из категории "ООП лучше, потому что он лучше".
     
  20. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Amian
    Если это так, то это глупость, ибо проектированием больших систем должны заниматься и аналитики, и программисты, чтобы вторые могли вовремя остановить первых, если первые допустят очевидный ляп при проектировании. Если к проектированию приложения подходить только "сверху", не продумывая сразу деталей реализации, такой проект превратится в головную боль для программистов впоследствии.
     
  21. Davil

    Davil Guest

    Dagdamor
    не ооп. uml лучше paint'a =)
     
  22. Amian

    Amian Активный пользователь

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    Dagdamor
    При создании таможни для EU на Java это так :) Само собой там есть все необходимые проверки чтобы не было ляпов, но рядовые программисты к этому не причастны.
     
  23. Amian

    Amian Активный пользователь

    С нами с:
    15 мар 2007
    Сообщения:
    189
    Симпатии:
    0
    ну да :) Рассматривать надо начинать с проэктирования, иначе всё сводится к подобному:

    A: "Покажи мне как ты создаш 10 одинаковых обьектов без ООП"
    B: "А нафига мне обьекты в процедурном ?"
    :lol:
     
  24. Dagdamor

    Dagdamor Активный пользователь

    С нами с:
    4 фев 2006
    Сообщения:
    2.095
    Симпатии:
    1
    Адрес:
    Барнаул
    Amian
    Звучит как отмазка ;) но я не спорю. Я в действительно крупном проекте участвовал только один раз (и при проектировании участвовала целая команда программистов, что потом вполне окупилось).