Форум программистов, компьютерный форум, киберфорум
PHP: ООП
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.96/26: Рейтинг темы: голосов - 26, средняя оценка - 4.96
 Аватар для VilDara
5 / 5 / 0
Регистрация: 27.08.2012
Сообщений: 153

Проектирование проекта. Как разделить его на классы

20.12.2013, 10:32. Показов 5662. Ответов 40
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

Я проектирую один проект и не знаю, как разделить классы.


Например, должна быть регистрация, аутентификация и "забыли пароль?"

Лучше разделить на 3 класса соответственно или лучше как-то по-другому?

Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.12.2013, 10:32
Ответы с готовыми решениями:

ООП. Как разделить функции на классы?
Добрый день, форум) Хотел задать один вопрос, думаю, он не очень трудный, но все же ... Вот скажем, у меня есть отдельный класс, в нем...

Как struct Queue и его операции превратить в классы, то есть нужно сделать тоже самое, но через классы
Как struct Queue и его операции превратить в классы, то есть нужно сделать тоже самое, но используя соотвественно классы И как...

Как придумать классы по описанию проекта
Здравствуйте, мне нужно построить UML диаграмму классов, но не могу правильно их подобрать. Суть: мой проект моделирует сервисы...

40
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
27.12.2013, 23:17
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от fic Посмотреть сообщение
Мы перешли на "ты"?
А мы были на вы? Вроде ж мы с тобой в интернетиках?
Ладно, давай без флейма.

Цитата Сообщение от fic Посмотреть сообщение
ы можете гарантировать что знаете механизм абсолютно всех процессов, которые происходят на страницах вашего проекта в Symfony?
Если у меня возникнут вопросы, точно могу узнать почему. Я просто посмотрю код фреймворка и решу проблему.
Я не испытываю благоговения перед кодом и могу его читать. Кстати, тебе это тоже можно. Хочешь?

Цитата Сообщение от fic Посмотреть сообщение
О, снова вы. Осознали ошибку?
Да. Прости. Писал до этого на другом сайте, где принято "выкать".

Цитата Сообщение от fic Посмотреть сообщение
Я смог освоить фреймворк (Zend) на достаточно далеком от дилетантского уровне, т.к. приходиться поддерживать проект на нем работающий и, хоть я и знаю этот фреймворк довольно неплохо, считаю его очень неудобным.
Почему тогда не смог освоить другой удобный фреймворк?
1
15 / 15 / 11
Регистрация: 22.12.2013
Сообщений: 104
27.12.2013, 23:25
Цитата Сообщение от OnYourLips Посмотреть сообщение
Если у меня возникнут вопросы, точно могу узнать почему. Я просто посмотрю код фреймворка и решу проблему.
Я не испытываю благоговения перед кодом и могу его читать.
И потратите время (в отдельных случаях немало). А если прийдеться что-то дописать\переписать так вообще отдельная тема)

Цитата Сообщение от OnYourLips Посмотреть сообщение
Почему тогда не смог освоить другой удобный фреймворк?
Потому что нету потребности, зачем? К тому же я довольно сильно загружен для этого.
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
27.12.2013, 23:32
Цитата Сообщение от fic Посмотреть сообщение
И потратите время (в отдельных случаях немало). А если прийдеться что-то дописать\переписать так вообще отдельная тема)
Я потрачу несколько часов. За это время ничего нельзя написать.
Поэтому это очень выгодно. Если работать за деньги.

Цитата Сообщение от fic Посмотреть сообщение
Потому что нету потребности, зачем? К тому же я довольно сильно загружен для этого.
Поздравляю. Ты почти поумнел.
Осталось немного: подумать, каким образом то, что я отметил болдом, связано с тем, что я отметил курсивом.
Я понимаю, что сначала тебя это разозлит, но если ты поймешь то, что я имею ввиду, ты будешь благодарен.
0
15 / 15 / 11
Регистрация: 22.12.2013
Сообщений: 104
27.12.2013, 23:41
Цитата Сообщение от OnYourLips Посмотреть сообщение
Я потрачу несколько часов. За это время ничего нельзя написать.
Поэтому это очень выгодно. Если работать за деньги.
За несколько часов я могу набросать макет сайта с регистрацией и небольшой админкой (предположим система учета товаров). Либо сделать какой-нибудь внутренний проект типа статистику звонков пользователей в техподдержку и подобное. (Вот поэтому я не люблю использовать фреймворки, на них действительно мало что возможно за несколько часов). (Это не критика вашей работы, ни в коем случае, просто ИМХО)

Цитата Сообщение от OnYourLips Посмотреть сообщение
Поздравляю. Ты почти поумнел.
Осталось немного: подумать, каким образом то, что я отметил болдом, связано с тем, что я отметил курсивом.
Я понимаю, что сначала тебя это разозлит, но если ты поймешь то, что я имею ввиду, ты будешь благодарен.
Никаким образом не связано.
Загружен я не из-за того, что я что-то долго делаю, как раз наоборот. Чем быстрее я что-то делаю тем больше на себя беру и соотв. тем больше я загружен. Вот так вот.

И попрошу еще раз ХВАТИТ оскорблять меня упоминая про умственные способности, я о ваших ничего не говорил вроде-бы. Что дает вам право общаться в таком тоне?

Здесь я ни в коем случае не критикую ваш стиль работы. Я хочу чтобы вы хотя бы извинились за безосновательный наезд на предложенную мной архитектуру, а вы продолжаете попытки унизить по любой теме.
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
27.12.2013, 23:45
Цитата Сообщение от fic Посмотреть сообщение
За несколько часов я могу набросать макет сайта с регистрацией и небольшой админкой (предположим система учета товаров). Либо сделать какой-нибудь внутренний проект типа статистику звонков пользователей в техподдержку и подобное.
Какой у тебя там опыт работы?
Обычно трезво на вещи начинают после 2 лет.

Цитата Сообщение от fic Посмотреть сообщение
И попрошу еще раз ХВАТИТ оскорблять меня упоминая про умственные способности, я о ваших ничего не говорил вроде-бы. Что дает вам право общаться в таком тоне?
Чтобы я этого не делал, тебе не стоит говорить то, что ты уже успел сказать.
Это не смешно даже, смотреть на то, как самоуверенный болван несет пургу.
0
27.12.2013, 23:52
 Комментарий модератора 
Дальнейшее общение - только по теме, без переходов на личности и оскорблений.
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
29.12.2013, 21:20
Цитата Сообщение от fic Посмотреть сообщение
Действительно, мне же очень нехватает теории..
Или на этом форуме все, у кого овер 500 сообщений смотрят как на говно на тех, у кого надпись "новичек", не вникая?
Когда имеется один корневой класс, в котором содержаться все системные методы (к примеру ф-я display, которая отображает выбранный шаблон с указанными данными, либо пользовательская ф-ция select для выборки из базы) это очень удобно.

А теперь объясните мне почему я советую бред?
Потому что про ООП вы ничего не читали. Вы понятия не имеете об основных, базовых принципах ООП. Вы не читали ничего про архитектуру, а когда Вам сделали замечание - уперлись рогом.

Не должно быть никакого "корневого" класса "в котором содержаться все системные методы".
Просто потому что есть SOLID - http://ru.wikipedia.org/wiki/S... 8%D0%B5%29

"к примеру ф-я display, которая отображает выбранный шаблон с указанными данными, либо пользовательская ф-ция select для выборки из базы" - это нарушение принципа единой ответственности. Ваш мозг Вам не советует, что как бы "ф-я display, которая отображает выбранный шаблон с указанными данными" и "пользовательская ф-ция select для выборки из базы" -- это АБСОЛЮТНО разные слои, которые никак не должны пересекаться и знать о друг-друге?
0
15 / 15 / 11
Регистрация: 22.12.2013
Сообщений: 104
30.12.2013, 15:11
Цитата Сообщение от Василий Макогон Посмотреть сообщение
Потому что про ООП вы ничего не читали. Вы понятия не имеете об основных, базовых принципах ООП. Вы не читали ничего про архитектуру, а когда Вам сделали замечание - уперлись рогом.

Не должно быть никакого "корневого" класса "в котором содержаться все системные методы".
Просто потому что есть SOLID - http://ru.wikipedia.org/wiki/S... 8%D0%B5%29

"к примеру ф-я display, которая отображает выбранный шаблон с указанными данными, либо пользовательская ф-ция select для выборки из базы" - это нарушение принципа единой ответственности. Ваш мозг Вам не советует, что как бы "ф-я display, которая отображает выбранный шаблон с указанными данными" и "пользовательская ф-ция select для выборки из базы" -- это АБСОЛЮТНО разные слои, которые никак не должны пересекаться и знать о друг-друге?
Я смотрю на этот класс немного с другой стороны. Он предназначен для системных ф-ций, а не конкретно для работы с базой либо работы с шаблонизатором. Под системными ф-циями я понимаю те ф-ции которые неизменны в зависимости от страницы. С этой точки зрения ф-ция отображающая шаблон и ф-ция делающая выборку из базы лежат в одном "слое" и принцип единой ответственности не нарушен. По поводу того, что выборка из базы и отображение шаблона это разные слои, тоже не соглашусь. По сути и то и то это получение определенной информации по заданным параметрам.

В плане аналогии можно привести ящик с инструментами, который может содержать как пласкогубцы, так и паяльник либо вольтметр. И когда электронщику нужно идти на вызов он берет с собой весь ящик, а не каждый инструмент по отдельности.

Вот и мой класс такой себе ящик с инструментами.
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
30.12.2013, 21:30
Цитата Сообщение от fic Посмотреть сообщение
По поводу того, что выборка из базы и отображение шаблона это разные слои, тоже не соглашусь. По сути и то и то это получение определенной информации по заданным параметрам.
О_о
мне нечего ответить. если вы не видите разницы между запросами к СУБД и шаблонизацией... ну я не в силах тут что-то объяснить =)
0
15 / 15 / 11
Регистрация: 22.12.2013
Сообщений: 104
02.01.2014, 11:59
Цитата Сообщение от Василий Макогон Посмотреть сообщение
О_о
мне нечего ответить. если вы не видите разницы между запросами к СУБД и шаблонизацией... ну я не в силах тут что-то объяснить =)
Где я сказал что не вижу разницы? Я сказал о том, что если взглянуть на это с другой стороны, то можно представить эти 2 действия как родственные (передача управляющих последовательностей и получение результата)
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
02.01.2014, 15:51
Ага, а еще автомобиль и автомагазин - одно и тоже. И там и там есть запчасти
0
15 / 15 / 11
Регистрация: 22.12.2013
Сообщений: 104
04.01.2014, 19:10
Цитата Сообщение от KOPOJI Посмотреть сообщение
Ага, а еще автомобиль и автомагазин - одно и тоже. И там и там есть запчасти
Смотря с какой стороны смотреть на проблему, если нужны запчасти то всеравно взять их из другой машины либо в автомагазине
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6725 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.01.2014, 19:14
fic, ну, по вашему, если можно смотреть с разных "углов" - то значит, что равноценно. Что-то никто не ездит в автомагазине..
0
15 / 15 / 11
Регистрация: 22.12.2013
Сообщений: 104
04.01.2014, 21:43
Цитата Сообщение от KOPOJI Посмотреть сообщение
fic, ну, по вашему, если можно смотреть с разных "углов" - то значит, что равноценно. Что-то никто не ездит в автомагазине..
Равноценно для конкретной потребности но не равноценно в общем, я о том, что принципы SOLID очень расплывчаты и в данном случае, если посмотреть на мою архитектуру с немного другой точки зрения, то она очень даже им подходит, ну да я объяснял выше.
0
 Аватар для cellse
70 / 68 / 22
Регистрация: 12.08.2013
Сообщений: 297
05.01.2014, 01:19
Я нихрена не понимаю о чем идет речь.. Закончили бы вы уже друг другу что-то доказывать )
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
05.01.2014, 13:09
Цитата Сообщение от cellse Посмотреть сообщение
Я нихрена не понимаю о чем идет речь.. Закончили бы вы уже друг другу что-то доказывать )
перечитай ссылки в теме и поймешь. это очень важная тема, точнее то, что в ней обсуждается.
0
 Аватар для cellse
70 / 68 / 22
Регистрация: 12.08.2013
Сообщений: 297
05.01.2014, 15:37
Нет, я конечно же понимаю о чем идёт речь в самой теме, но я не понимаю позицию fic'a
ТСу и fic'у советую прочесть это. Прошу прощения, если в теме уже давали эту ссылку.
0
601 / 569 / 104
Регистрация: 07.11.2010
Сообщений: 2,004
06.01.2014, 23:42
Цитата Сообщение от cellse Посмотреть сообщение
Нет, я конечно же понимаю о чем идёт речь в самой теме, но я не понимаю позицию fic'a
ТСу и fic'у советую прочесть это. Прошу прощения, если в теме уже давали эту ссылку.
само по себе MVC без понимания принципов SOLID вообще не нужно
0
508 / 358 / 13
Регистрация: 12.03.2012
Сообщений: 1,896
19.01.2014, 21:18
Цитата Сообщение от panicwassano Посмотреть сообщение
само по себе MVC без понимания принципов SOLID вообще не нужно
Нужно.
SOLID - это принципы ООП разработки.
MVC же может быть реализовано и без ООП.
0
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
19.01.2014, 21:49
Цитата Сообщение от fic Посмотреть сообщение
А теперь объясните мне почему я советую бред? Ибо используя подобную архитектуру и определенный шаблонизатор можно сделать динамическую (автообновляемую страницу) почти без всякого дополнительного обвеса к обычной.
Я бы не стал сразу выносить такой жесткий вердикт. Но доля правды тут есть: класс для работы с БД, класс шаблонов, класс языков, все это нельзя совмещать в один "базовый". А дл работы с базовыми классами есть смысл создать отдельный класс, в котором организовать проверку на существование инсталла, чтобы не создавать постоянно экземпляры типа new class();
Посмотри, как это организовано в Джумле, в частности класс JFactory
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2014, 21:49

Проектирование проекта сервера
Добрый день. Являюсь начинающим программистом. Сейчас пишу проект, но столкнулся с трудностью, что не знаю как правильно его с...

Как вставить в UML схему классы проекта в Visual Studio Ultimate 2010
Добрый день! В проекте создал классы. Создал пустую схему классов UML. Как теперь в нее засунуть все классы проекта? Неужели...

Как разделить объявление массива контролов и его инициализацию конкретными компонентами
Всем здравствуйте. Такое объявление совмещённое с инициализацией успешно работает в конструкторе формы TButton *ArrBut = {Button1,...

Как загрузить текстовый файл с определенной строки и разделить его на столбцы
Добрый вечер, подскажите пожалуйста, как написать макрос загрузки текстового файла. Загрузив его с определенной строки, разделить его на...

Не отрисовывается изображение, после того, как я добавил его в классы
Отображается маленький квадрат. Структура font OpenSans-Regular.ttf bmw_PNG1709.png src captcha.php


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru