Supongo que realmente no hay una sola "mejor práctica" para esto, depende de su estilo de codificación y los requisitos para su aplicación. Definitivamente puede crear un repositorio para cada tipo de entidad en su sistema, eso funcionará perfectamente.
En su caso aquí, probablemente al menos consideraría tener un repositorio para los conductores, y posiblemente un segundo para los automóviles, motores, chasis (ya que están en la misma área de experiencia, están interconectados, "pertenecer" juntos).
Pero, por supuesto, si ese repositorio único para automóviles, motor y chasis se hincha demasiado, podría considerar dividirlo en tres repositorios separados.
Intentaré encontrar un equilibrio entre la cantidad de repositorios (intente agrupar lo que lógicamente pertenece) y la cantidad de métodos en esos repositorios. Cinco, diez métodos están bien; si estás hablando de 20, 30 o 50 métodos, tu repositorio podría ser demasiado grande e inmanejable.
Definitivamente es una decisión arquitectónica, y como tal, en realidad no son muchos hechos concretos que lo guíen: es más un "presentimiento" y un tipo de experiencia. Si aún no tiene esa experiencia necesaria, siga un enfoque, utilícelo y, cuando termine, mírelo nuevamente con ojo crítico y vea: ¿qué funcionó? ¿Qué pasa con eso no funcionó? y luego en su próximo proyecto, pruebe otro enfoque y cuestione su validez, también, al final del proyecto. ¡Vive y aprende!
¿Qué estás tratando de lograr? ¿Qué tutorial (agregar el enlace)? – tsinik
Actualmente estoy en la parte 3 que está creando clases de repositorio. La url es http://nerddinnerbook.s3.amazonaws.com/Part3.htm. –