«Много линий» вовсе не означает, что класс - это божественный объект, это ужасный ужасный ориентир для выяснения, следует ли вам что-то реорганизовать.Некоторые вещи очень сложны и требуют сложного и изначально большого объекта.Идея объекта Бога состоит в том, что делает класс .
Например, если бы я создал объект, который мог бы
DoMyTaxes()
GiveMeHugs()
LogThisError()
StartGameLoop()
Объект был бы квалифицирован как объект Бога, даже если это может быть только 100 строк кода.Основная идея заключается в том, что все вышеперечисленное совершенно не связано (в конце бизнес-логики спектра), так почему же в мире они все являются частью одного и того же объекта.Если бы я решил, что объятия будут длиться дольше, я мог бы в конечном итоге поднять налоги.Введите IRS.
Однако, если вы работаете над симулятором физики, допустим, и класс Classical()
будет иметь такие методы / объекты, как:
Space()
Time()
Velocity()
Speed()
Mass()
Acceleration()
Gravity()
Force()
Impulse()
Torque()
Momentum()
AngularMomentum()
Inertia()
MomentOfInertia()
ReferenceFrame()
Energy()
KineticEnergy()
PotentialEnergy()
MechanicalWork()
VirtualWork()
DAlembertsPrinciple()
(любезно предоставленоВикипедия)
Этот объект не будет объектом бога.Это сложный объект.Все, что имеет отношение к ньютоновской физике, проходит через это, но это не объект Бога ... это просто действительно большой объект.Выше может оказаться тысячи строк кода.
Объект Quantum()
будет еще более сложным, разумеется.
Повторим, идея о программе поведение , а не поток данных :
вас не волнует, содержит ли один объект много данных приложения, или нужно пройти через большинство потоководин объект.Что больше влияет на ремонтопригодность, так это когда один класс Бога (tm) содержит слишком много поведения (бизнес-код).
Если вы считаете, что есть проблема, вы можете попробовать реализовать различные формы опосредованное или более уродливые шаблоны, такие как внедрение зависимостей .