Ratschläge zur Mischung aus Singleton- und Staatsdesignmuster in PythonPython

Python-Programme
Anonymous
 Ratschläge zur Mischung aus Singleton- und Staatsdesignmuster in Python

Post by Anonymous »

In Pygame mache ich ein Spiel und soweit ich weiß, schafft niemand zwei Instanzen eines Spiels (rechtfertigt Singleton), und mein Spiel hat verschiedene Zustände wie "Startmenü", "Spiel über", "Spielen" (rechtfertigt "staatliche Designmuster) < /p>
Zuerst wollte ich zuerst die Staaten erzwingen. Geist: < /p>

Code: Select all

class GameState(ABC):

@abstractmethod
def exit(self):
pass
Und dies ist mein Gamemeta

Code: Select all

class GameMeta(type):
_instances = {}

def __call__(cls):
if cls not in cls._instances:
instance = super().__call__()
cls._instances[cls] = instance
return cls._instances[cls]
< /code>
Ich habe < /p>
class StartMenu(GameState):
def exit(self):
pass
< /code>
als Spielstatus. Ich habe auch GameOver 
und ähnliche Klassen von StartMenu , und in meinem main.py habe ich game startet die Spielinstanz:
class Game(metaclass=GameMeta):
def __init__(self):
self.current_state: GameState = StartMenu()
self.screen = None
< /code>
Gibt es eine Anzeichen von schlechter Praxis? Ich mische Singleton und Staatsmuster, irgendwelche Fehler? oder Verletzung des Entwurfsmusters oder des Prinzips? Ist das eine schlechte Idee insgesamt?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post