Strategy Pattern

class File: def __init__(self): self.strategy = None def compress(self): self.strategy.compress()import abcclass CompressionStrategy(abc.ABC): @abc.abstractmethod def compress(cls): passclass ZipCompression(CompressionStrategy): def compress(cls): print("zip Compression")class RarCompression(CompressionStrategy): def compress(cls): print("rar Compression")f = File()f.strategy = ZipCompression()f.compress()f.strategy…

Continue ReadingStrategy Pattern

Observer Pattern

import abcclass Observer(abc.ABC): @abc.abstractmethod def update(self, lon, lat): passclass MobileApp(Observer): def update(self, lon=0.0, lat=0.0): print(f"{lon} : {lat}")class MobilePhone: lon, lat = 0.0, 0.0 observers = [] def move(cls, lon, lat):…

Continue ReadingObserver Pattern

Command Pattern

# Command Pattern is good for batch processes with behavioral classclass Document: text = "" def __str__(self): return self.textimport abcclass DocumentCommand(abc.ABC): doc = None @abc.abstractmethod def execute(self): pass @abc.abstractmethod def…

Continue ReadingCommand Pattern