Objecten naar elkaar verwijzen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lord Gaga

Lord Gaga

30/11/2014 12:51:21
Quote Anchor link
Hallo,

Op dit moment ben ik bezig met het maken van een klein game framework maar ik loop vast op het volgende;
Wat ik tot nu toe heb is een Game class en een Stage class. Elke Game kan meerdere Stages hebben.

Hetgeen ik nu graag zou willen is dat de Game een lijst heeft met al haar Stages, maar een Stage moet ook een verwijzing hebben naar de Game waar ze deel uit maakt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
game.pushStage(stage);


De bovenstaande manier is waarop ik een Stage toevoeg aan een Game, maar nu moet de Stage ook een verwijzing hebben naar de Game, hoe kan ik dit het beste doen? (Het liefst met 1 method)

Alvast bedankt!
 
PHP hulp

PHP hulp

23/11/2024 23:25:28
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/11/2014 13:32:52
Quote Anchor link
// zoiets?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
class Stage
{
    private $game;
    
    public function __construct($game) {
        $this->game = $game;
    }

    
    public function getNameOfGame() {
        return $this->game->getName();
    }
}


class Game
{
    private $stages;
            
    public function addStage($stage)
    {

        $this->stages[] = $stage;
    }

    
    public function getName()
    {

        return 'Pacman';
    }
}


$game = new Game();
$stage = new Stage($game);

$game->addStage($stage);

echo $stage->getNameOfGame();
?>
Gewijzigd op 30/11/2014 13:34:48 door Frank Nietbelangrijk
 
Lord Gaga

Lord Gaga

30/11/2014 13:59:34
Quote Anchor link
De Game meesturen via de constructor probeerde ik eigenlijk te vermijden, maar als dat de enige oplossing is, dan moet het maar, bedankt voor je hulp! :P
 
Frank Nietbelangrijk

Frank Nietbelangrijk

30/11/2014 14:17:27
Quote Anchor link
Het hoeft uiteraard niet maar het heeft als voordeel dat de $game property direct een geldige instantie van de Game class is.

Laat je deze property later setten dan weet je nooit of dit wel gebeurd is en moet je dat dus altijd controleren. Maar maak van die constructor simpel een setGame() functie en je kan het later doen.
 
Lord Gaga

Lord Gaga

30/11/2014 14:26:03
Quote Anchor link
Dan is de game doorgeven via de constructor toch handiger lijkt me. Ik ben nu op het volgende uitgekomen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Create game
var game = new jFrame.Game('Game', '0.0.1', function()
{
    // Add game to console
    console.log(this);

    // Create stage
    var stageView = new jFrame.Stage(this, 'view', function()
    {
        // Add stage to console
        console.log(this);

        // Push stage
        this.getGame().pushStage(this);
    });
});


Is dit een beetje een handige manier / structuur om dit aan te pakken?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.