Reusar código

Buenas, estoy un poco atascado con cierta problemática a la hora de organizar el código. Tengo un modelo llamado Partido, por otra parte tengo varias partes de mi sitio que usan Partido, en concreto Grupos, clubes y usuarios.

Un Partido puede pertenecer(ser organizado) por un grupo, un usuario o un club. A la hora de gestionar un Partido necesito mucho código. Tengo un PartidoController para cada una de las secciones (grupo, usuario, club) y se repite mucho código.

Lo primero que se me ha ocurrido es usar un único controlador para gestionar todos los partidos, pero hay ciertos detalles que dependen de la entidad organizadora(grupo, usuario, club). Por poner un ejemplo, cuando se crea un Partido, a la hora de guardarlo dependiendo de la entidad organizadora necesito comprobar que los participantes son miembros o del grupo o del club o amigo de usuario. Había pensado en crear modelos que hereden de Partido (PartidoGrupo, PartidoClub…) y colocar dentro de cada uno los métodos particulares para validar los participantes y otras tareas que los diferencian. Otro problema es que la vista de creación de un Partido tiene pequeños cambios según la entidad organizadora.

No tengo claro como hacer esto. ¿Alguna sugerencia?

Gracias.

Podrías tener un solo controlador y varios modelos

en la vista de carga deberías tener un campo "tipo" que

te identifique tu entidad organizadora y con ajax mostrar

el modelo correspondiente para la carga de datos