So habe ichs ja auch gemacht aber der Bereitsteller dieser Funktionen(Interface) muss dann wissen, welche Interface alles zusammen verwendet werden sollen. Nicht der Verwender entscheidet dann, was zusammen gehört / was er zusammen braucht.
Außerdem ist mir noch ein zweites Problem aufgetreten, wofür ich bis jetzt keine Lösung habe aber Hilfe benötige:
Wenn ein ein zufälligen Punkt in ein Haus erzeugen will, gehe ich zur Karte und lasse mir ein IHouseSearch-Objekt(Steht für ein Haus) zurück geben, womit ich dann ein Zufallspunkt erzeugen kann.
Wenn ich ein Punkt, der vor einen Haus liegt erzeugen will, gehe ich zur Karte und sage, gib mir für das Haus 'X' den Parkpunkt. (IParkHouse ist dann ein Haus, was diesen Punkt erzeugt)
Wenn der Verwender nun also eine Liste aller Häuser haben will, womit er Zufallspunkte sowohl innerhalb des Hauses erzeugen kann, als auch Parkplatzpunke davor, wie macht er das dann?
Hat er dann bei sich ein Klasse die so aussieht?
class House : IHouseSearch, IParkHouse //Bereitsteller
{
}
//Verwender
class MyHouse
{
IHouseSearch house1; -> Beide Propertys verweisen auf das gleiche Haus
IParkHouse house2;
}
Ist das so richtig, oder muss auch hier die House-Klasse bereits sowas hier kennen?
IHouse : IHouseSearch, IParkHouse
{}
Es klingt jetzt erstmal ähnlich. Aber diesmal soll dasIHouseSearch dann an das Kartenobjekt übergeben werden können. Da sage ich dann, gib mir ein Pfad von IHouseSearch 1 zu IHouseSearch 2. Die Interface arbeiten nicht nur für sich alleine sondern die Karte macht dann mit mehreren davon als INput was.
Ich weiß halt noch nicht so richtig, ob es so klug ist, wenn der Bereitsteller bereits für alle Interface-Kombinationen ein eigenes Zusammenfassungsinterface hat/kennt. Vielleicht mach ich mir auch zu viele Gedanken und diese Abhängkeit zwischen Bereitsteller und Verwender ist voll ok.
D