Танцуй от
DI
Т.е. нужно решить какие методы нужны от класса.
Если выборка всех фирм, то что-нибудь типа getAll
Если выборка по ид, то getById(id)
и т.д.
Исходить надо из интерфейса который требует клиент класса. А сам класс реализует его.
Так ты сделаешь скрытым то, что не требуется клиенту и дашь себе возможность менять реализацию класса, без изменения его клиента.
Реализацию класса старайся делать без повторений используя скрытые методы.
Если в классе есть места которые будут часто изменяться, то выноси их в другие классы и делегируй им выполнение.
SRP
Ну и прочитай про остальные принципы SOLID. Что бы использовать их. Без фанатизма. Это очень поможет тебе делать понятный для себя и других код. Ну и тестируемый.