![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Я планирую сделать один проект. Будет к примеру база, в которой будут храниться сведения о персоне.
В чём преимущество создать и использовать класс и как я могу этим пользоваться. Вообще, есть ли смысл создавать класс, а не напрямую доставать данные из обрабатывать их. Хотелось бы услышать более-менне убедительные доводы, а не просто "так удобнее" и будьте разумными, не давайте ссылки -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Мне проще писать и понимать так:
Как видишь активно используються обьекты, всё ясно и удобно. Повторю: как тебе понятней удобней, так и делай -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Плюсы:
* Удобство редактирования код, поскольку при большом файле, где бы у вас хранилось около 150 функций, было бы тяжело сориентироваться * Удобство модификации, поскольку вам достаточно лишь изменить тот или иной метод класса, не переписывая при этом основной код программы. * Повышение безопасности, при грамотном использовании. * Увеличение времени работы скрипта, при грамотном использовании. Что касается минусов, то при Неправильном проектировании все вышеперечисленные плюсы окажутся в минусе. Под проектирование понимается описание структуры класса, его свойств и методов описываемых в нем, взаимодействие объектов. Главное – правильно спроектировать объектную модель вашего приложения. Четко определить, что будет делать тот или иной метод и что будет хранить то или иное свойство. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
У меня летает в мыслях общие черты, но никак не могу их вопростить в реальность.
Давайте я кратко опишу свою задачу. Делаю генеологическое древо. Стараюсь следовать спецификации есть таблицы "Событие" - ID - день - месяц - год - прификс - место - ID персоны - фото "Персона" - ID - Фамилия - Имя - Отчество - Фамилия при рождении - место жительства - отец - мать - фото В общем, у "персоны" может быть много событий. Вот никак не могу определить как мне описать класс. -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Red Dragon
в принципе ты описал выше структура класса. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Да я её у себя в тетрадке уже давно описал, но как её практически применять не могу понять.
И как мне быть с "Собитие", создать ещё один класс? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Red Dragon
Использование классов зависит не только от структуры данных, но и от сложности реализации поставленного алгоритма на практическом уровне. |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
В зависимости от того что ты хочешь сделать. Допустим что событие это реально событие, например день рождения персоны или день выдачи зар.платы.
Тогда можно для юзера сделать класс, который будет просто нести инфу о юзере, без set методов. Обычно установку этой инфы ведём с других мест. Инфу лучше выдавать в ассоциативном массиве, а не в куче get методов, не на Java же пишем Также он будет иметь метод getEventManager() - возвращающий обьект менеджера событий для юзера. Смысл менеджера фильтрировать события, например listAllEvents() - вообще все события listByDateEvents($timestamp) - события по дате listTodayEvents() - события за сегодня(упрощение метода выше) Вообще менеджер может многое что делать... В списках событий храняться третий вид обьектов: события. Имплементация каждого события лежит в своём классе и делает что то необходимое с юзером, например поздравляет с зарплатой и напоминает что баланс на счету и-нета -хх енотов. Для событий пишем один базовый класс с базовым интерфейсом, содержащим processEvent() - начать работу, каждый наследник переопределит сей метод Что имеем в это точке? Ясность кода, простоту, расширяемость за счёт новых событий(действий). -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
То есть если я буду использовать класс без событий, мне проще сделать массив....?
Мне нужно ещё события проработать, так? Sardar Ну ты сказал, голова сразу загрузилась.. -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Red Dragon
события это функции (методы). У PHP собыйтий нет. ПХП5 - небольшое исключение. У тея же - свойства (переменнные). |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Короче разбивать на классы нужно не как на какие то структуры данных, а логически на "кто что будет делать". Разбивка на дочерние классы от базового по смыслу "как это будет работать". Это базис, после идут паттерны ООП и т.п. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
А есть принципиальная разница использовать классы или массивы+функции?
-------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Mal Hack |
|
|||
![]() Мудрый... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 9926 Регистрация: 15.2.2004 Репутация: 122 Всего: 261 |
Это два способа реализации.
Если грамотно применять, все будет путем, но Объекты легче на больших проектах (сложных). |
|||
|
||||
| Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Вот у меня код, всё сделано через массивы. Определение и заполнение
А как это же описать через классы? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 4 Всего: 317 |
Я честно не понял что ты хотел этим кодом сделать...
Наверное так:
Если я не правильно тебя понял, то опиши задачу на на человеческом(русском) языке -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |