Har ett problem som jag har svårt att implementera på ett snyggt sätt. Jag har redan en implementation, och även fast den fungerar, så är jag inte riktigt nöjd med den rent programmeringsmässigt. Det känns som att det finns ett snyggare sätt att göra det.
Bakgrund:
Jag driver en form av en annonssajt. Spelar inte riktigt roll vad det är, men följande information är tillgänglig. Problemet jag har är att jag försöker skapa en listningsmodul som listar alla givna (till modulen givna) annonser på ett lämpligt sätt.
Användaren kan ha tre olika tillgångsnivåer; Besökare, Ägare och Administratör.
Utöver detta kan varje Annons vara antingen Aktiv, Inaktiv eller Pausad.
Funktion
Modulen ska ta emot en lista med annonser och lista dessa på ett lämpligt sätt. Anledningen till att jag vill baka ihop allting till en modul är att listningen i stort är identisk, förutom smärre variationer. Det känns därmed dumt att upprätthålla flera olika versioner (om jag ändrar på ett ställe är jag tvungen att ändra på flera ställen).
Baserat på vilken kombination av ovanstående, ska olika saker visas.
Om det är en Besökare som listar en Pausad annons = en vy.
Om det är en Ägare som listar en Aktiv annons = en annan vy.
Om det är en Administratör som listar en Pausad annons = en annan vy osv osv.
Hur gör jag detta på ett snyggt objekt orienterat sätt? I största mån vill jag undvika kluster av if-satser och duplikation. Jag använder mig utav PHP, så multiple inheritance är inte ett alternativ.
Förslag? Min magkänsla säger att detta bör gå att lösa på ett snyggt sätt med typ polymorfism.