Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 01.11.2013, 05:02
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 1  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
По умолчанию Кто такие Интефейсы?

Салют!
Собственно вопрос в заголовке. Но немного уточню.
Для меня интерфейс это как дресс-код или фейс-контроль: собрался чем либо заниматься - пожалуйста, соответствуй требованиям. За всем с высоты компиляторного полета следит Компилятор и я доволен. Но вот случайно увидел слово interface php5-исходнике и застыл... Зачем в нетипизированом интерпретируемом языке интерфейсы???
Почесал я репу, почесал, но ничего так и не понял. Очень надеюсь, что найдется знаток, способный либо аргументировано опустить ПХП с его ООП-понтами, либо даст глубокое определение самой конструкции "Интерфейс".
Заранее благодарен!

Старый 01.11.2013, 08:01
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Начнем с того, кто Вам сказал, что php не типизированный язык? У него динамическая типизация. Так же как и в других языках есть приведение к типам.
Интерфейсы в php нужны для тех же целей, что и в других языках. К примеру создаем класс, применяющий интерфейс, и в этом классе обязательно должны быть все методы, описанные в этом интерфейсе.
Более подробно

п.с. Какое отношение эта тема имеет к ас3?

Старый 01.11.2013, 08:52
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 3  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
На счет ас3 - мне интересен интерфейс как идея, а не как реализация в конкретном языке. Просто пхп под руку попался.

А вообще Вы меня не поняли. Вот Вам пример:
Код AS3:
var instance0:IBitmapDrawable = new MyEmbededPicture_dot_PNG(); // OK
var instance1:IBitmapDrawable = new Timer(1000); // Oops...
Не знаю, как Вы, но я благодарен компилятору, что он не пропустит такой код. И эту (возможно побочную) функцию интерфейсов я очень люблю. Но что же у нас будет в пхп? А ничего! Пока не вызовешь несуществующий метод не поймешь, что кривой объект у тебя на ссылке висит. К тому же нет никакой возможности в самом коде намекнуть на ожыдаемый тип экземпляра (указать тип переменной). Таким макаром можно провести объект через сотни ссылок, сто раз забыть, где этот объект создавался, а потом случайно вызвать ожыдаемый метод, а его нет... никто и не заметил, что объект не имплементировал нужный интерфейс. А если же я уверен, что объект именно тот, что нужно, то зачем мне вешать на него бейдж с интерфейсом, ведь его никто не проверит.
Лично я не вижу смысла в такой конструкции, как интерфейс в язиках, подобных ПХП. Но мое мнение - не последняя инстанция и даже не предпоследняя Меня гложит мысль, что я даже не подозреваю о каких то особенностях интерфейсов, которые оправдывают их присутствие в ПХП и Ко. А раз я не совсем понимаю интерфейс, как идею, то скорее всего и родной ас3-интерфейс хранит от меня какие-нибудь секреты.

Старый 01.11.2013, 11:28
Mirror13 вне форума Посмотреть профиль Отправить личное сообщение для Mirror13 Найти все сообщения от Mirror13
  № 4  
Ответить с цитированием
Mirror13
 
Аватар для Mirror13

Регистрация: May 2010
Адрес: Ногинск
Сообщений: 56
elder_Nosferatu, вы не все знаете о PHP:

PHP код:
class SendMail 
{
    
/**
     * Mailer object with IMailer interface
     * @var \MockMailer|\SmtpMailer|\NativeMailer
     */
    
private $_mailer;

    public function 
__construct(IMailer $mailer)
    {
        
$this->_mailer $mailer;
    }

    
//...


Старый 01.11.2013, 18:36
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 5  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
Ну это уже чтото!
Надо будет как нибудь поближе взглянуть.

Старый 02.11.2013, 14:14
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 6  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Цитата:
Зачем в нетипизированом интерпретируемом языке интерфейсы
Цитата:
аргументировано опустить ПХП с его ООП-понтами
Цитата:
Но что же у нас будет в пхп? А ничего! Пока не вызовешь несуществующий метод не поймешь, что кривой объект у тебя на ссылке висит. К тому же нет никакой возможности в самом коде намекнуть на ожыдаемый тип экземпляра (указать тип переменной). Таким макаром можно провести объект через сотни ссылок, сто раз забыть, где этот объект создавался, а потом случайно вызвать ожыдаемый метод, а его нет... никто и не заметил, что объект не имплементировал нужный интерфейс. А если же я уверен, что объект именно тот, что нужно, то зачем мне вешать на него бейдж с интерфейсом, ведь его никто не проверит.
К сожалению, в этих словах заложено невежество и банальное незнание.
Php язык с кучей проблем, я тоже готов его постоянно критиковать, но по существу.
Как по-вашему должен выглядеть php-код? Неструктурированная лапша?

Цитата:
не подозреваю о каких то особенностях интерфейсов, которые оправдывают их присутствие в ПХП и Ко
Кого вы относите в компанию к php?

Добавлено через 8 минут
Посмотрите на примеры хорошего кода на php
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 02.11.2013, 15:07
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 7  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Помню когда-то очень долго думал как жеж мне организовать интерфейс для жс.
Да, в динамических языках это скорее фейк и плюшка для самоорганизации, а не реальная техническая реализация.

Но тем не менее. Если хочешь писать красиво - ты найдешь способ это сделать.
И я не пропагандирую ООП ради ООП. Я люблю функциональщину в петоне.
Но там где ООП уместно - очень желательно его иметь, или хотя бы эмулировать.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 02.11.2013, 16:53
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 8  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Что касается js - это действительно язык, который очень сложно структурировать.
Особенно, это касается больших проектов на нем. Иногда на помощь приходят фреймворки типа angular или backbone.
Цитата:
очень долго думал как жеж мне организовать интерфейс для жс.
Мы тоже задавались этим вопросом, и сделали что-то вроде абстрактных классов. Но суть не в этом. Js не поддерживает ООП в классическом понимании ни на сколько. И его действительно иногда приходится эмулировать.

Php - язык, который прекрасно и полноценно поддерживает ООП. И говорить, что это "фейк и плюшка" не есть корректно. Кстати, php еще отлично развивается, чего, к сожалению, не скажешь о flash-платформе (по крайней мере, по темпам намного веселее).
Опять-таки повторюсь, у него полно других проблем, но это не проблемы плохой поддержки ООП.

В своих проектах, мы слезаем с php и окончательно перебираемся на python. Но не потому что php - плохой, потому что пайтон классный

И вообще у меня складывается достаточно парадоксальная ситуация: на работе я критикую php больше всех (даже первичная инициатива перехода на пайтон принадлежала мне). Здесь же на форуме мне приходится почти всегда его защищать, потому что нападают на него в основном люди похожие на ТС. То есть не имеющие опыта нормального программирования на php нисколько, зато имея мощнейшие стереотипы о том, что php - это лапша, школьники, печаль и вселенское уныние.

А пайтон.. Ну что тут скажешь. Он классный. Очень удобный, лаконичный, хорошо читаемый.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 02.11.2013, 18:11
Babylon вне форума Посмотреть профиль Отправить личное сообщение для Babylon Посетить домашнюю страницу Babylon Найти все сообщения от Babylon
  № 9  
Ответить с цитированием
Babylon
[+1 25.10.13]
[+4 18.03.14]
 
Аватар для Babylon

Регистрация: Jan 2006
Адрес: Москва, Зеленоград
Сообщений: 653
Отправить сообщение для Babylon с помощью ICQ
Если уж приводить примеры на php, то лучше ссылаться на laravel или симфони. yii мне не понравился.

Старый 02.11.2013, 18:53
carrotoff вне форума Посмотреть профиль Отправить личное сообщение для carrotoff Найти все сообщения от carrotoff
  № 10  
Ответить с цитированием
carrotoff
 
Аватар для carrotoff

Регистрация: May 2010
Сообщений: 543
Цитата:
то лучше ссылаться на laravel или симфони
Это очень спорно. Я специально сослался на yii и на кохану, ибо код там максимально понятен и легко читаем, как раз подходит как пример хорошего кодинга на php.

Код симфони напоминает громадного монстра с невероятным усложнением и гигантским слоем абстракций.
Хотя симфони хорошая штука, но он требует приличного уровня подготовки.

Насчет yii готов спорить. Для веб-проектов трудно найти что-то лучше.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:07.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.