Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: кто нибуть объясните абстрактные классы и интерфейсы
 
 автор: Sergi   (04.08.2008 в 02:07)   письмо автору
 
 

вообще не понятна область их применения.

Надоели ответы в роде:
абстрактные классы призваны улучшить читабельность программы.
из абстрактных классов нельзя создавать объект.
и т.д.

Это все конечно очень мило, но конкретно где применяются абстрактные классы и интерфейсы?

Может у кого-то есть хороший пример или какая нибуть информация?

спасибо

  Ответить  
 
 автор: BinLaden   (04.08.2008 в 13:46)   письмо автору
 
   для: Sergi   (04.08.2008 в 02:07)
 

Абстрактные классы и интерфейсы не несут какой-либо функционал. Они предназначены для описания других классов, которые могут быть созданы на основе абстрактного класса или интерфейса.
Реальный пример: Ваш скрипт устроен так, то все запросы к базе данных проходят через класс-оболочку для совместимости с разными СУБД и/или для создания системы кеширования. Можно сначала создать абстрактный класс или интерфейс типа

<?php

interface idb
{
    
/* Выполнение SQL-запроса */
    
public function query($query);

    
/* Закрытие соединения с СУБД */
    
public function close();
}

# ...

class db implements idb
{
    private 
$conn_id;

    public function 
query($query)
    {
        
# ...

        
mysql_query($query$this->conn_id);

        
# ...
    
}

    public function 
close()
    {
        
# ...

        
if( $this->conn_id )
        {
            return 
mysql_close($this->conn_id);
        }

        
# ...
    
}
}

?>


чтобы можно было всё описать в интерфейсе и облегчить работу другому программисту по созданию нового класса-оболчки для MS SQL, например.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования