Ik ben bezig met een java client/server schaakapplicatie.
Ik heb nu een bord wat tot op zeker hoogte werkt, en een stukje client/server wat ook werkt.
Ben nu bezig om dit in elkaar te schuiven.
Ik wil graag het client gedeelte van de client/server in een aparte klasse regelen => CommunicatieManager.java.
Deze maakt contact met een socket op de server, stuurt berichten en luistert naar berichten die ervandaan komen.
In Board.java zit een methode move(doe een zet) deze verplaatst het stuk op mijn gui.
Ik zou in Board.java een CommunicationManager Object kunnen aanmaken. Op het moment dat er een zet word gedaan, zou ik in move een methode aan kunnen roepen die een bericht stuurd naar de communicatieManager, die dat weer doorstuurd naar de server.
Tot zover duidelijk.
Maar die CommunicatieManager zit ook te luisteren naar zetten die van de andere kant komen, van de server dus.
Ik moet dus vanuit de CommunicatieManager ook de move functie van Board.java kunnen gebruiken. En CommunicatieManager weet (nog) niks van Board af.
Ik heb zelf 2 oplossingen:
1 - geef het Board object mee aan de constructor van CommunicatieManager. Lijkt me wel te werken, maar lijkt me geen nette oplossing al weet ik niet waarom.
2 - Maak gebruik van Observer/Observable
Mij lijkt Observer/Observable de beste oplossig, maar ik weet het niet zeker, of zijn er nog andere manieren?
En als 1 geen fatsoenlijke oplossing is, waarom dan?
Ik heb nu een bord wat tot op zeker hoogte werkt, en een stukje client/server wat ook werkt.
Ben nu bezig om dit in elkaar te schuiven.
Ik wil graag het client gedeelte van de client/server in een aparte klasse regelen => CommunicatieManager.java.
Deze maakt contact met een socket op de server, stuurt berichten en luistert naar berichten die ervandaan komen.
In Board.java zit een methode move(doe een zet) deze verplaatst het stuk op mijn gui.
Ik zou in Board.java een CommunicationManager Object kunnen aanmaken. Op het moment dat er een zet word gedaan, zou ik in move een methode aan kunnen roepen die een bericht stuurd naar de communicatieManager, die dat weer doorstuurd naar de server.
Tot zover duidelijk.
Maar die CommunicatieManager zit ook te luisteren naar zetten die van de andere kant komen, van de server dus.
Ik moet dus vanuit de CommunicatieManager ook de move functie van Board.java kunnen gebruiken. En CommunicatieManager weet (nog) niks van Board af.
Ik heb zelf 2 oplossingen:
1 - geef het Board object mee aan de constructor van CommunicatieManager. Lijkt me wel te werken, maar lijkt me geen nette oplossing al weet ik niet waarom.
2 - Maak gebruik van Observer/Observable
Mij lijkt Observer/Observable de beste oplossig, maar ik weet het niet zeker, of zijn er nog andere manieren?
En als 1 geen fatsoenlijke oplossing is, waarom dan?