У меня возник вопрос (касательно PHP и ООП). Точнее, необходимо направить мой мозг в правильное русло.
Есть необходимость в реализации следующего:
Реализация некоего универсального класса для работы с БД (CDatabase). И реализация конкретных классов для работы с конкретными СУБД (CDatabaseMySQL, CDatabaseSQLite и прочее). Самое главное, чтобы работа из движка производилась ТОЛЬКО через CDatabase, а этот класс уже смотрел по настройкам какой конкретный "подкласс" использовать и вызывать его методы.
До сего момента, делал "топорным" способом. в CDatabase хранился объект класса нужной СУБД, который создавался в конструкторе, после просмотра настроек и тп. И в CDatabase были реализованы ОДИНАКОВЫЕ с подклассами методы.
В качестве небольшого примера:
cdatabase.php
<?php
class CDatabase
{
private $Subsystem;
function __construct(){
//читаем настройки и создаем Subsystem, как объект нужного класса.
}
function Query($query)
{
//пред обработка $query
$this->Subsystem->Query($query);
}
}
?>
cdatabasemysql.php
<?php
class CDatabaseMySQL{
// ...
function Query($queryText){
// ...
$result = @mysql_query(...);
}
}
?>
Уважаемые форумчане, мне не понятна модель реализации. :( Как сделать без лишнего дублирования и "перевызова"? Надеюсь, понятно написал.