В PHP есть ли влияние производительности на использование одного длинного класса с множеством функций в нем? Или целесообразно использовать многие небольшие классы и называть их по необходимости, когда это необходимо?
Я новичок в OOPS и, пожалуйста, игнорируйте любую глупость в вопросе. Благодарю.
Целесообразно не думать о производительности, прежде чем у вас есть код. С точки зрения ремонтопригодности и понимания, конечно, более мелкие классы с меньшими методами превосходят. (см. Принцип единой ответственности )
Когда вам нужно оптимизировать, вы действительно можете собрать (автоматически) весь свой код в один большой файл и сэкономить время на include-s.
Во-первых, подумайте о чистом дизайне ООП.
Очень длинные классы с множеством методов и свойств очень трудно понять.
Набор хорошо продуманных классов со значимыми именами классов, именами методов и именами переменных очень легко понять, особенно когда речь заходит о периоде обслуживания.
В общем, люди склонны делать слишком большие и сложные классы – это потому, что часто бывает трудно увидеть, где лежат границы сплочения. Поэтому, когда вы начинаете и немного неуверены, лучше ошибиться на стороне их слишком малой: вы всегда можете объединить более мелкие классы в более крупный … часто гораздо сложнее реорганизовать большой класс на несколько небольших из них.
Вы можете и должны помещать вещи в один и тот же класс, пока они напрямую связаны с логикой класса, который вы создаете. Размер класса не означает многого, если вы следуете концепциям ООП.
Лично для меня я бы предпочел разбить классы на меньшие файлы, основываясь на том, для чего они предназначены. Если это бизнес-объекты, то предпочтение будет иметь «customer.class.php» «account.class.php» и т. Д.
В большинстве проектов, над которыми я работал, это было так: более крупный «lib» или «общий» файл, который включает множество различных функций, которые используются повсюду.
Для записи размер не является важной частью для рассмотрения в классе. Ключом к классу являются зависимости классов.
Например, класс, который зависит от базы данных, должен разделяться в специальном классе, таком как класс Репозиторий / Дао / Дал / Стойкость.