Автор Тема: Помогите с ООП  (Прочитано 20008 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #15 : 29 Октября 2004, 16:44:27 »
Папа, ты с кем сейчас разговаривал? ;-)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Помогите с ООП
« Ответ #16 : 29 Октября 2004, 16:55:34 »
RomikChef
денек пусть повисит, если у автора не будет вопросов - прибью свою речь
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #17 : 29 Октября 2004, 17:21:21 »
Да не, пусть висит.
Хорошая речь - я даже половину понял :-)
Друое дело, что, боюсь, для клиента будет сложновато, все-таки...

Я потому факи и пишу, что не далеко от них ушел ;-)

Оффлайн Slastik

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 101
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.sproekt.kiev.ua
Помогите с ООП
« Ответ #18 : 30 Октября 2004, 01:14:37 »
Макс
Моща :)
На целую статью потянет.
Главное что я извлек, это то что надо брать умные книжки по ООП,
и штудировать штудировать и еще раз штудировать :)
Мне всегда было интересно, это людям с рождения дано,
или если я буду к примеру года два ботать пхп,  то тоже
умным стану?

ЗЫ
Приятно видеть что RomikChef тоже не все на свете знает :)
FAQ OFF =)

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Помогите с ООП
« Ответ #19 : 30 Октября 2004, 10:40:18 »
Slastik
насчет книг, то по этой теме можно почитать
http://www.books.ru/shop/books/156126

А если английский знаешь то полезно почитать форум
http://www.sitepoint.com/forums/forumdisplay.php?f=147

Цитировать
Slastik:
Мне всегда было интересно, это людям с рождения дано, или если я буду к примеру года два ботать пхп, то тоже умным стану?
я из тех, кто считает, что программистами рождаются :)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #20 : 31 Октября 2004, 17:44:45 »
Макс
Я посмотрел код твоего класса, очень много дало, только не понял некоторых вещей, а именно: DB::$conn - что это такое? Я не пойму назначение :: , ведь это вроде инструмент для обращения из потомков к функциям или переменным базовых классов, получается что ты из класса DB обращаешся же к классу DB... Или это уже из 5 серии заморочки? Объясни плиз. Я ненашёл что-то об этом инфы..
Спасибо.

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #21 : 31 Октября 2004, 21:21:22 »
class A{
  function 
B(){ echo "!";
  }
  function 
C(){
  
A::B(); //напечатает !
  
}
}


т.е. насколько я понимаю, :: служит не только для обращения из класов-потомков к главным классам, но и к функциям текущего класса? В мане так написано, что не очень понятно.. тогда почему ты Макс используешь такой подход: db::$var, а не $this->$var???
« Последнее редактирование: 31 Октября 2004, 21:27:55 от Алексей »

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Помогите с ООП
« Ответ #22 : 01 Ноября 2004, 15:54:35 »
оператор :: позволяет обращаться к методам без создания экземпляра класса (не важно где - в классе, в потомке или просто в коде).
Поскольку объект не создается, то и переменная $this отсутствует.

Работа с этим классом основана на статических переменных - это фича ПХП5
http://www.php.net/manual/en/language.oop5.static.php
http://www.php.net/manual/en/language.oop5.paamayim-nekudotayim.php
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #23 : 01 Ноября 2004, 15:56:06 »
Спасибо.

Оффлайн Босc всех зон

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 14
  • +0/-0
  • 0
    • Просмотр профиля
Помогите с ООП
« Ответ #24 : 01 Ноября 2004, 21:30:46 »
2 Макс

Сам использую репозиторий объектов. Удобно.
Но терзают какие-то непонятные сомнения насколько это правильно :)

Мне кажется, читая код сложно понять где Аргегация, а где Композиция объектов должна быть. То-есть абсолютно не задумываемся как же нужный объект должен оказаться в классе: то-ли передавать как ссылку, то-ли создавать его в нём, а просто берём из репозитория и всё. И как бы теряется какой-то шаг проектирования.

Ты UML диаграмки классов рисуешь?

Цитировать
Работа с этим классом основана на статических переменных - это фича ПХП5


Но можно и на 4-ой версии сделать репозиторий (правда ущербный :) )
« Последнее редактирование: 01 Ноября 2004, 21:49:41 от Босc всех зон »

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Помогите с ООП
« Ответ #25 : 01 Ноября 2004, 21:51:36 »
Цитировать
Босc всех зон:
Ты UML диаграмки классов рисуешь?

Пока что нет. Я программист-одиночка и не вижу смысла рисовать их для себя.

Насчет правильности использования репозитария.
1. Пока не вижу ничего в нем неправильного.
2. Если это неправильно то отвечу фразой с  http://blogs.msdn.com/micahel/archive/2004/06/16/157202.aspx :
Цитировать
A great developer not only knows the canonical implementation but understands it is the canonical implementation.  A great developer can tell when the canonical implementation is not the best answer for a particular problem.


Цитировать
Босc всех зон:
Но можно и на 4-ой версии сделать репозиторий (правда ущербный )

там речь ишла о классе работы с БД.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #26 : 02 Ноября 2004, 12:32:17 »
Блин! И всё же я не пойму, где и когда лучше использовать ::, а где $this->var...

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #27 : 02 Ноября 2004, 12:33:59 »
почему-то мне кажется, что это не самая важная проблема, которая перед тобой стоит...

используй $this->var

Оффлайн Алексей

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 176
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #28 : 02 Ноября 2004, 12:49:41 »
RomikChef
просто я ООП начал усердно постигать, вот и хочется его постигнуть как можно глубже :)

Оффлайн Меняздесьдавнонет

  • новичЕк
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 5698
  • +0/-0
  • 2
    • Просмотр профиля
    • http://
Помогите с ООП
« Ответ #29 : 02 Ноября 2004, 13:00:26 »
это не та глубина.
сейчас ты решаешь, какой формы у тебя будут иллюминатры на корабле.
при том, что сам корабль пока больше напоминает велосипед.

Я доступно объясняю?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28