danilabergin
Новичок
пытаюсь понять ООП
Начинаю практически с нуля. Достаточно всякой литературы прочитал про идеологию ООП. Небольшая путаница в голове образовалась, вопрос наверняка элементарный, но нужен пинок в правильную сторону. Если на конкретном примере подскажет комьюнити пхпклуба, было бы здорово.
К примеру имеем...
бд-класс Журнал
метод ДобавитьЗапись
метод РедактироватьЗапись
метод УдалитьЗапись
метод ПолучитьЗапись.
и есть интерфейсная какая-то приблуда, которая создает экземпляр этого класса, использует его методы и показывает все это безобразие...
Я пытаюсь использовать adodb в качестве api для доступа к субд. Так вот, наверное, правильней будет бд-класс "журнал" наследовать от бд-класса adonewconnection? дабы не создавать в каждом бд-классе экземпляры класса адодб, т.е. считаем, каждый раз коннектится к бд. Делать глобальной переменную $db = AdoNewConnection() и использовать уже её в своих бд классах тоже будет не верным ?
Так вот. Остановимся на той, идее что adonewconnection родительский для каждого нашего бд-класса. Но как это будет работать, не совсем понятно.
class AdoNewConnection
function __construct;
function connect;
function execute;
...
class Journal extend AdoNewConnection
function __construct;
function get_records;
function del_records;
...
class OtherBDClass extend AdoNewConnection
function __construct;
function get_records;
function del_records;
...
По идее, в конструкторе бд-классов вызывается parent::__construct. А в этом самом родительском конструкторе идет коннект к базе и т.п. в результате чего мы можем в нашем бд классе выполнять sql к базе и т.п.
Но если мы используем в нашем интерфейсном модуле два бд-класса, получается выполняется подключение к бд два раза?! Что, как мне кажется не правильно.
Если кто-то все-таки понял проблему моего понимания буду рад услышать напутственные слова в мир ооп.
Начинаю практически с нуля. Достаточно всякой литературы прочитал про идеологию ООП. Небольшая путаница в голове образовалась, вопрос наверняка элементарный, но нужен пинок в правильную сторону. Если на конкретном примере подскажет комьюнити пхпклуба, было бы здорово.
К примеру имеем...
бд-класс Журнал
метод ДобавитьЗапись
метод РедактироватьЗапись
метод УдалитьЗапись
метод ПолучитьЗапись.
и есть интерфейсная какая-то приблуда, которая создает экземпляр этого класса, использует его методы и показывает все это безобразие...
Я пытаюсь использовать adodb в качестве api для доступа к субд. Так вот, наверное, правильней будет бд-класс "журнал" наследовать от бд-класса adonewconnection? дабы не создавать в каждом бд-классе экземпляры класса адодб, т.е. считаем, каждый раз коннектится к бд. Делать глобальной переменную $db = AdoNewConnection() и использовать уже её в своих бд классах тоже будет не верным ?
Так вот. Остановимся на той, идее что adonewconnection родительский для каждого нашего бд-класса. Но как это будет работать, не совсем понятно.
class AdoNewConnection
function __construct;
function connect;
function execute;
...
class Journal extend AdoNewConnection
function __construct;
function get_records;
function del_records;
...
class OtherBDClass extend AdoNewConnection
function __construct;
function get_records;
function del_records;
...
По идее, в конструкторе бд-классов вызывается parent::__construct. А в этом самом родительском конструкторе идет коннект к базе и т.п. в результате чего мы можем в нашем бд классе выполнять sql к базе и т.п.
Но если мы используем в нашем интерфейсном модуле два бд-класса, получается выполняется подключение к бд два раза?! Что, как мне кажется не правильно.
Если кто-то все-таки понял проблему моего понимания буду рад услышать напутственные слова в мир ооп.
