Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 24 Май, 2012, 04:41:27

Страниц: [1] 2 3 ... 19
Печать
Автор Тема: непонятки с ООП  (Прочитано 8491 раз)
0 Пользователей и 1 Гость смотрят эту тему.
mario    ↓ 
21 Январь, 2010, 08:14:55
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09

Приветы :)
В общем суть следующая, в силу моего плохого понимания ООП, точнее малого опыта... Встал следующий вопрос.
Как правильно реализовать класс типа "Блог", "Страница", "Каталог" и прочее...
Опишу как я хочу делать и делаю на примере модуля "Страница":
PHP
class Page {
    public function getPageName ($id) {
    //взять имя страницы
    }
    public function getPageUrl ($id) {
    //взять адрес
    }
    public function getPageTitle ($id) {
    //взять тайтл
    }
    public function getPageKeyword ($id) {
    //взять ключевики
    }
    public function getPageDescript ($id) {
    //взять описание
    }
    public function getPagePath ($id) {
    //взять путь
    }
    public function getPageState ($id) {
    //взять состояние
    }
    public function getPageModules ($id) {
    //взять модули страницы
    }
    public function getPageTreeChildren ($id) {
    //взять потомков
    }
    public function getPageTreeParent ($id) {
    //взять родителя
    }
    public function setPageName ($id, $name) {
    //установить имя страницы
    }
    public function setPageUrl ($id, $url) {
    //установить адрес страницы
    }
    public function setPageTpl ($id, $tpl_id) {
    //установить шаблон
    }
    public function setPageTitle ($id, $title) {
    //установить тайтл
    }
    public function setPageKeyword ($id, $keyword) {
    //установить ключевики
    }
    public function setPageDescript ($id, $descript) {
    //установить описание
    }
    public function setPageState ($id, $state) {
    //установить состояние: 0-выкл, 1-вкл.
    }
    public function addPage () {
    //добавить страницу
    }
    public function deletePage () {
    //удалить страницу
    }
    public function editPage () {
    //редактировать страницу
    }
}
специально привел такое большое количество, что бы была ясна ситуация...
в общем для меня кажется что это сильно много гетеров и сетеров :)
Я думаю что я что то не так понимаю... Или же это правильно?
Может ли кто показать пример как вы это реализовываете?
PS спасибо за внимание.
Спустя 1 минуту 1 секунду добавил
у всех подглюкивает пыха, на загрузку страниц?
« Последнее редактирование: 21 Январь, 2010, 08:12:28 от mario » Записан

с ув. mario.
Контакты
phpdude    ↓ 
21 Январь, 2010, 08:22:57 , спустя 8 минут 2 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

ух ебанутся, причем тут ооп?
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
mario    ↓ 
21 Январь, 2010, 08:24:00 , спустя 1 минуту 3 секунды
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09


ух ебанутся, причем тут ооп?
резонный вопрос. А ООП тут притом что я хотел бы разобраться... где я делаю ошибку... :(
Записан

с ув. mario.
Контакты
mario    ↓ 
21 Январь, 2010, 08:29:11 , спустя 5 минут 11 секунд
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09


ух ебанутся, причем тут ооп?
покажи простой пример ООП :)
только не на выдуманных классах и методах
а на реальных и достаточно понятных :)
Записан

с ув. mario.
Контакты
NRG    ↓ 
21 Январь, 2010, 08:36:28 , спустя 7 минут 17 секунд
НЕ ХУЕТА! ХУЕТА!

Headshot!MultiKill!
Группа: нинзя

Карма: 777
Сообщений: 4700
Сила слова: 16.81

mario, что такое класс Page   ?
ты сам на пальцах можешь обьяснить к какой сущности он приадлежит ? (блок, модель, контроллер)
 
у тебя в нем походу сборище всего....  а так неправильно..
Записан

Буратино дрочил, дрочил и сгорел
Java и JavaScript это абсолютно разные вещи !!!
Господа, вы хуйня.
девушки краснели, отворачивались но порнуху продолжали смотреть
artoodetoo    ↓ 
21 Январь, 2010, 08:38:41 , спустя 2 минуты 13 секунд
НЕ ХУЕТА! ХУЕТА!

с особым цинизмом
Группа: в ухо

Карма: 124
Сообщений: 3804
Сила слова: 3.26

Зачем сразу "ошибка"? Воспрос в том, что называть "объектным программированием". Моё IMHO: ООП это подход от «цели к средствам».
В твоём случае бОльшая часть методов нужна только на стадии формирования страницы (View). Скажи пожалуйста, твой класс Page это класс контроллера или представления?
Спустя 34 секунды добавил
NRG опередил :) меньше букв — первый нах
Записан
phpdude    ↓ 
21 Январь, 2010, 08:49:27 , спустя 10 минут 46 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

только не на выдуманных классах и методах
я хоть раз на выдуманныз показывал?) я вроде всегда "жизненые ситуации привожу"
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
CTAPbIu_MABP    ↓ 
21 Январь, 2010, 08:50:38 , спустя 1 минуту 11 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5187
Сила слова: 1.81

mario,
 
PHP

 
class A{
    private $id;
    private $description;
    public function setID ($id) {
        $this->id = $id;
    }
    public function __call($name){ // name=getDescription
        $var = strtolower(substr($name,0,2));
        return this->{$var};
    }
}
 
 

я думаю ход мысли понятен
Записан

java.lang.OutOfMemoryError
phpdude    ↓ 
21 Январь, 2010, 08:57:44 , спустя 7 минут 6 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: 20784
Сила слова: 1.66

CTAPbIu_MABP, не в курсе "во сколько раз" медленнее работают магич методы по сравнению с прямым вызовом?
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
kostyl    ↓ 
21 Январь, 2010, 09:11:03 , спустя 13 минут 19 секунд
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3519
Сила слова: 1.71


CTAPbIu_MABP, не в курсе "во сколько раз" медленнее работают магич методы по сравнению с прямым вызовом?
в немного, а ты будешь считать сколько ты раз в проекте делаешь вызовов через magic ? просто интересно ))
Записан

качество жизни обратно пропорционально количеству лени
mario    ↓ 
21 Январь, 2010, 09:20:21 , спустя 9 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09

NRG, artoodetoo, это класс контроллера, модель не выношу отдельно (не знаю почему).
CTAPbIu_MABP, честно не совсем понятно... :( мог бы ты пояснить на пальцах? Буду премного благодарен.
phpdude, не не показывал выдуманные, просто уточнил, а то вдруг на скорую руку захочешь написать :)
NRG, artoodetoo, ну допустим метод getPageName вытаскивает из базы данных имя страницы и передает его View
PS все методы создавались из того побуждения что, читал во многих источниках нужно представлять объект как реальный, и вот я и описал все реальные функции объекта "Страница".

mario, что такое класс Page   ?
класс Page это класс страниц (формирование, создание, удаление, редактирование) все остальные гетеры вспомогательные, на тот случай что они в любом случае потребуются.
Записан

с ув. mario.
Контакты
phpdude    ↓ 
21 Январь, 2010, 09:21:09 , спустя 48 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66



CTAPbIu_MABP, не в курсе "во сколько раз" медленнее работают магич методы по сравнению с прямым вызовом?
в немного, а ты будешь считать сколько ты раз в проекте делаешь вызовов через magic ? просто интересно ))
юморист? )
 
я про обычное поведение скриптов
 

PHP

.... быдлокод ....
foreach($dbitems as $item)
{
     ... biidlocode ...
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     $tpl->lala = $item['xxx'];
     bidlocode ....
}
.... быдлокод ....

ну и это еще разок умножить на for какой нить глобальный, ведь быдлокод :)
 
ну это так, пшик :)
Спустя 32 секунды добавил


CTAPbIu_MABP, не в курсе "во сколько раз" медленнее работают магич методы по сравнению с прямым вызовом?
в немного, а ты будешь считать сколько ты раз в проекте делаешь вызовов через magic ? просто интересно ))
а пруфлинк и данные?
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
mario    ↓ 
21 Январь, 2010, 09:22:43 , спустя 1 минуту 34 секунды
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09

давайте сейчас не будем спорить о производительности? На данной стадии это бессмысленно.
Записан

с ув. mario.
Контакты
phpdude    ↓ 
21 Январь, 2010, 09:23:23 , спустя 40 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 344
Сообщений: д-о-х-у-я!
Сила слова: 1.66

пошел поработаю, полдня пропиздел)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
mario    ↓ 
21 Январь, 2010, 09:25:57 , спустя 2 минуты 34 секунды
НЕ ХУЕТА! ХУЕТА!

wazzup
Группа: Джедаи

Карма: 67
Сообщений: 6162
Сила слова: 1.09


пошел поработаю, полдня пропиздел)
:) спасибо дуд:)
Спустя 1 минуту 22 секунды добавил
NRG, artoodetoo, CTAPbIu_MABP, собрались те самые люди на которых я и рассчитывал :))) надеюсь вы не против? ;)
phpdude, дуд ахуенен, но только не тогда когда дело доходит до просвещения знаний :)
Записан

с ув. mario.
Контакты
Страниц: [1] 2 3 ... 19
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, Sinkler