Ich habe eine relativ große Latte von verschiedenen Objekten ( OpenGL Shadern) die alle miteinander verwand sind. Ich habe Aufrufe auf diesen Objekten denen es nur wichtig ist, dass diese Objekte vom Root-Parent erben. Andere Aufrufe ( die in den Renderern) ist es wichtig das spezifische child Objekte zu besitzen.
An und für sich, kann ich natürlich hingehen und in den Renderen die jeweiligen spezifischen Objekte instanziieren und jedem Renderer eine Methode wie z.B. "public IShader getShader()" geben und mein "Problem" wäre gelöst. Allerdings juckt es mich in den Fingern, da alle Objekte so ähnlich sind sie nicht in ein Pattern rein zu stecken. Allerdings fehlt mir der Richtige Ansatz.
Ein Ansatz von mir wäre mit dem Factory Pattern und generics zu arbeiten:
Würde funktionieren allerdings fühlt sich das mehr als falsch an...
Über ein paar neue denk Anstöße in eine "schönere" Richtung würde ich mich freuen!
Viele Grüße
An und für sich, kann ich natürlich hingehen und in den Renderen die jeweiligen spezifischen Objekte instanziieren und jedem Renderer eine Methode wie z.B. "public IShader getShader()" geben und mein "Problem" wäre gelöst. Allerdings juckt es mich in den Fingern, da alle Objekte so ähnlich sind sie nicht in ein Pattern rein zu stecken. Allerdings fehlt mir der Richtige Ansatz.
Ein Ansatz von mir wäre mit dem Factory Pattern und generics zu arbeiten:
Java:
public class IShaderFactory {
public <T extends IShader> T create(Class<T> type){
if (type.equals(EntityShader.class)) {
type.cast(new EntityShader());
}
// some more
throw new ShaderNotFoundException();
}
}
Würde funktionieren allerdings fühlt sich das mehr als falsch an...
Über ein paar neue denk Anstöße in eine "schönere" Richtung würde ich mich freuen!
Viele Grüße