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

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

20.12.2013, 10:32. Показов 5422. Ответов 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 / 6724 / 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 / 6724 / 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru