Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 17, 2012 19:48:53

Hello_world
Зарегистрирован: 2012-10-04
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Что лучше: много классов с несколькими методами, или один класс с большим кол-вом методов

Собственно сабж. Какой pythonic style? Один класс с множеством методов или много классов с несколькими(1-3) методами? Проблем разделить класс нет, соединить все в один тоже.

Спасибо.

Офлайн

#2 Ноя. 17, 2012 20:21:11

cutwater
От:
Зарегистрирован: 2009-01-08
Сообщения: 444
Репутация: +  19  -
Профиль   Отправить e-mail  

Что лучше: много классов с несколькими методами, или один класс с большим кол-вом методов

Очень сильно зависит от конкретного дизайна и конкретной задачи. Если проблем в разделении классов или соединении нет, возникает вопрос вообще о целесообразности использования классов.



Отредактировано cutwater (Ноя. 17, 2012 20:21:45)

Офлайн

#3 Ноя. 17, 2012 20:34:19

Hello_world
Зарегистрирован: 2012-10-04
Сообщения: 37
Репутация: +  0  -
Профиль   Отправить e-mail  

Что лучше: много классов с несколькими методами, или один класс с большим кол-вом методов

Один файл содержит класс с гуи, другой файл класс с логикой и сессией selenium(а). Мне-то удобнее все держать в одном классе держать. Хотя, похоже я ошибся и логику разделить не получится(в этом случае будет создаваться новый экземпляр селениума и собственно новая сессия браузера), но все-равно спасибо за ответ.

Офлайн

#4 Ноя. 17, 2012 21:34:35

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Что лучше: много классов с несколькими методами, или один класс с большим кол-вом методов

Может быть это поможет - Принцип единственной обязанности



Офлайн

#5 Ноя. 17, 2012 23:07:27

4kpt
От: Харьков
Зарегистрирован: 2010-11-03
Сообщения: 998
Репутация: +  63  -
Профиль   Отправить e-mail  

Что лучше: много классов с несколькими методами, или один класс с большим кол-вом методов

Рекомендую предварительно прочитать Г.Буч “Объектно ориентированный анализ…”.
Там есть четкое определение принципов разделения классов:
Цитирую:
“Для оценки качества классов и объектов, выделяемых в системе, можно предложить следующие пять показателей:
- связанность;
- связность;
- достаточность;
- полнота;
- элементарность.”

Надеюсь поможет….
А разделение логики системы на: “Слой представления”, “Слой расчетов”, “Слой базы данных” - относится к идее слоистых систем и не может полностью (для любых случаев построения) отображать принципы разделения объектов на отдельные классы. Например, если имеет место сложная база знаний, разделенная на несколько БД - сваливать все это в один класс неприемлемо и т.п….



Отредактировано 4kpt (Ноя. 17, 2012 23:14:45)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version