Один длинный класс или много коротких классов?

В PHP, влияет ли производительность на использование одного длинного класса с большим количеством функций в нем? Или целесообразно использовать много небольших классов и вызывать их отдельно при необходимости?

Я новичок в OOPS и, пожалуйста, не обращайте внимания на глупости в этом вопросе. Благодарю.

6 ответов

Решение

Желательно не думать о производительности до того, как вы получите код. С точки зрения ремонтопригодности и понятности, конечно, меньшие классы с меньшими методами превосходят их. (см . принцип единой ответственности)

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

Сначала подумайте о чистом ООП-дизайне.

Очень длинные классы с множеством методов и свойств очень сложны для понимания.

Набор хорошо спроектированных классов со значимыми именами классов, именами методов и именами переменных очень легко понять, особенно когда речь идет о периоде обслуживания.

В целом, люди, как правило, делают слишком большие и сложные классы - это потому, что часто трудно увидеть, где лежат границы сплоченности. Поэтому, когда вы начинаете и немного неуверенны, лучше сделать ошибку, сделав их слишком маленькими: вы всегда можете объединить меньшие классы в более крупный... часто гораздо сложнее реорганизовать большой класс в несколько маленьких. из них.

Для записи, размер не является важной частью для рассмотрения в классе. Что является ключом к классу, так это зависимости классов.

Например, класс, который зависит от базы данных, должен быть отделен от специального класса, такого как класс Repository / Dao / Dal / Persistence.

Лично для меня я бы предпочел разбить классы на более мелкие файлы в зависимости от их предназначения. Если это бизнес-объекты, то я бы предпочел иметь учетную запись customer.class.php, account.class.php и т. Д.

В большинстве проектов, над которыми я работал, это было похоже на больший "lib" или "общий" файл, который включает в себя множество различных функций, которые используются повсеместно.

Вы можете и должны помещать вещи в один класс, если они напрямую связаны с логикой создаваемого вами класса. Размер класса не имеет большого значения, если вы следуете концепциям ООП.

Другие вопросы по тегам