Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: ООП
Войти
Регистрация
Восстановить пароль
 
Stas107
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 26
1

Слишком много кода в одном файле

11.05.2018, 13:12. Просмотров 356. Ответов 4
Метки нет (Все метки)

Мужики, дайте совет. По моему я переборщил с количеством кода и методов.

Создал класс Счет Invoice. Класс, который создает обычный бухгалтерский счет. Выбираются позиции, заполняются реквизиты, сохраняется информация в БД, распечатываем документы.

Методы:

public selectOne возвращает массив одного счета
public selectAll возвращает массив всех счетов
public create
public update
public delete
public createAttribute добавление состава счета в БД
public updateAttribute обновление состава счета в БД
public deleteAttribute удаление позиции состава счета в БД
public payment внесение оплаты всего счета
public paymentAttribute внесение оплаты конкретной позиции
private createDoc1 создание счета в формате rtf
private createDoc2 создание накладной в формате rtf
private createDoc3 создание акта в формате rtf
и еще пару технических private методов

У меня класс занимает 2000 срок. Это нормально? Может его надо разделить на части?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2018, 13:12
Ответы с готовыми решениями:

Слишком много кода во ViewModel-и
Нормально ли когда в одной VM под 300 строк, а в других в среднем до 50? Не представляю как их...

Лучше много функций в одном файле или по одной в разных файлах?
Доброго времени суток. Создаю свой сайт с нуля, уже есть 9 довольно больших функций для обработки...

слишком много аргументов в вызове функции или как создать много файлов на рабочем столе
Мне нужно создать на рабочем столе очень много файлов вот команда для создания 1 файла wchar_t...

Много сайтов на одном движке и на одном IP
Есть движок, который в зависимости от $_SERVER определяет - какую БД использовать - какую...

Слишком много условий
как будет правильно? вот на что я способен, но по моему это неверно да и не удается это даже...

4
andr-xw
121 / 76 / 32
Регистрация: 05.03.2013
Сообщений: 447
11.05.2018, 15:30 2
Вопрос не в количестве методов или строк, но вот твой класс действительно делает слишком много

Цитата Сообщение от Stas107 Посмотреть сообщение
Выбираются позиции, заполняются реквизиты, сохраняется информация в БД, распечатываем документы.
Вот сделай для каждой из этих задач отдельные классы.
0
Stas107
0 / 0 / 0
Регистрация: 14.11.2016
Сообщений: 26
11.05.2018, 15:38  [ТС] 3
Так это ведь одна сущность. Обычно советуют всё, что касается одной модели, делать в одном классе.
Или речь о наследовании?

InvoiceModifi extands Invoice
InvoicePayment extands Invoice

?
0
andr-xw
121 / 76 / 32
Регистрация: 05.03.2013
Сообщений: 447
11.05.2018, 17:10 4
Stas107, нет, наследование используется когда нужно выделить из одного общего типа несколько частных случаева, например есть оплаченные и неоплаченные счета и у оплаченного счета не может быть метода "оплатить", а вот неоплаченному он нужен.
0
Зверушь
455 / 363 / 94
Регистрация: 01.05.2010
Сообщений: 1,745
15.05.2018, 20:50 5
Модель это не всегда один класс... это слой. Тут может быть несколько классов. Можно создать классы DocumentCreator, DocumentPrinter и т.д. и работать с этими классами.
Цитата Сообщение от Stas107 Посмотреть сообщение
private createDoc1 создание счета в формате rtf
private createDoc2 создание накладной в формате rtf
private createDoc3 создание акта в формате rtf
Что вы будете делать если понадобиться еще и xls? Еще 3 метода писать? А потом pdf, doc, xml и т.д.
Почитайте про шаблоны проектирования, что-то подобное там есть 100%, сам недавно читал, но забыл как называется Для создания различных типов документов, думаю подойдет Abstract Factory, а для сохранения в различных форматов - Strategy. Ну это моя мысль с первого взгляда. Возможно меня поправят, самому интересно. Но класс в любом случае нужно разбить.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
15.05.2018, 20:50
StackOverflow
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2018, 20:50

Выдаёт слишком много
Программа которая ищет вход в строку фразы и количество входов Должна выдавать Pos 2 count 1...

Слишком много записей
Доброго времени суток! У меня тут некоторые проблемы со связями в Access. Когда я связываю...

Слишком много писем
Доброго времени суток! Почтовая прога не в силах справиться с количеством писем. При попытке...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru