За последние 24 часа нас посетили 15037 программистов и 1770 роботов. Сейчас ищет 1431 программист ...

Интерфесы, что это?

Тема в разделе "PHP и базы данных", создана пользователем John What, 11 май 2009.

  1. John What

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

    С нами с:
    27 янв 2007
    Сообщения:
    33
    Симпатии:
    0
    препод дал тему на курсач написать интерфес.
    и дал структуру БД в erwin'е
    PHP и MySQL немного знаю.
    Хотелось бы узнать что такое интерфесы для чего нужны, ПРИМЕР бы посмотреть
    что именно хотел препод =)?
    Могу выложить бд в рвине если требуется
     
  2. Cron

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

    С нами с:
    10 июл 2008
    Сообщения:
    289
    Симпатии:
    0
    Адрес:
    Украина, Сумы
  3. kostyl

    kostyl Guest

    John What
    ты себя видел, ты же сам как препод..
     
  4. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Судя по лексическому разбору текста и стилистическому анализу, возраст пишущего не совпадает с аватаркой.
    Соответственно, или человек довольно инфантилен, или это — фэйк.
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.557
    Симпатии:
    631
    Интерфейсы - это как соглашения, нужны, чтобы облегчить работу программистов в группе.
     
  6. John What

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

    С нами с:
    27 янв 2007
    Сообщения:
    33
    Симпатии:
    0
    вам делать нечего?Флудите и пытаетесь умничать.
    просто там борода у меня не сбрита и очки для прикола одел.
    хотел щас загрузить новую аватару-не выходит-сбрасывает на ошибку браузер.
    так что извиняйте.
     
  7. John What

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

    С нами с:
    27 янв 2007
    Сообщения:
    33
    Симпатии:
    0
    я просто не догоняю зачем вот например тут используется интерфес

    PHP:
    1.  
    2. <?php
    3. interface water
    4. {
    5.     public function makeItWet();
    6. }
    7.  
    8.  
    9. /**
    10.    * abstract class implements water but defines makeItWet
    11.    * in the most general way to allow child class to
    12.    * provide specificity
    13. **/
    14. abstract class weather implements water                  
    15. {
    16.    private $cloudy;
    17.    public function makeItWet(){}
    18.    abstract public function start();
    19.    abstract public function getCloudy();
    20.    abstract public function setCloudy();
    21. }
    22.  
    23. class rain extends weather                            {
    24.     private $cloudy;  
    25.     public function start() {
    26.         return "Here's some weather. ";
    27.     }
    28.    
    29.     public function makeItWet() {
    30.         return 'it is raining cats and dogs today.';
    31.     }
    32.     public function getCloudy() {
    33.         return $this->cloudy;
    34.     }
    35.     public function setCloudy($bln=false) {
    36.         $this->cloudy = $bln;
    37.     }
    38. }
    39.  
    40. $a = new rain();
    41. echo $a->start();
    42. $a->setCloudy(true);
    43. if ($a->getCloudy()) {
    44.     echo 'It is a cloudy day and ';
    45. }
    46. echo $a->makeItWet();
    47.  
    48. ?>
    49.  
    короче чето пока никак не догоняю :roll:
    Просто чтоли показывается как идет использование интерфеса из класса?
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.557
    Симпатии:
    631
    Типа того. Если в классе не будет метода, который указан в интерфейсе, php выдаст ошибку. Т.с. напомнит программисту, какой метод он забыл описать и как он должен называться. =)
     
  9. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    John What
    Интерфейс задаёт регламент.
    Методы, описанные в интерфейсе, должны быть обязательно реализованы классом.
    Возмем большой проект на С#:
    У нас есть несколько компонентных классов: Button, Editbox, Checkbox.
    Все они реализуют единый интерфейс.
    Для класса Form обязательна реализация метода Dispose.
    IData описывает обязательную реализацию Close для файла.

    По интерфейсу мы видим, на какой основе построен класс.
    Например: public partial class : IData, IComponent, IFree
    Мы знаем, какие методы обязан будет реализовать класс.
     
  10. John What

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

    С нами с:
    27 янв 2007
    Сообщения:
    33
    Симпатии:
    0
    капец.это же получается почти бесполезная штука.
    расковырял DLE ненашел применения там =).
    Хочу найти какойнить код, чего нибудь, где эти интерфесы используются (в PHP) , а не просто примеры где показывается как можно работать с интерфесами


    p.s. спасибо за разъяснения
    :wink:
     
  11. kostyl

    kostyl Guest

    John What
    Вот почитай https://php.ru/manual/reserved.interfaces.html Это встроенные интерфейсы PHP. Классы которые их реализуют, тоесть реализуют методы задекларированные этими интерфейсами могут использоваться "неформально" относительно обычных классов.
    Тоже самое и с интерфейсами определяемыми пользователем. Это не бесполезная штука, а очень мощный механизм, который является частью взаимодействия классов, рефакторинга и всей прочей крутой лабуды...
     
  12. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    DLE — это пример того, как не надо писать код.