State Pattern

# Allowing an object to alter behavior# when its internal state changes so that it appears to change its classclass Phone: def __init__(self): self.ring_state = SoundState() def volumeUp(self): self.ring_state =…

Continue ReadingState Pattern

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