SOLID
Single Responsibility Principle (SRP)
Open-closed Principle (OCP)
Liskov Substitution Principle (LSP)
class Car:
def __init__(self):
self.speed = 0
def speedup(self):
self.speed = self.speed + 1
def slowdown(self):
self.speed = self.speed - 1
class SportsCar(Car):
def speedup(self):
self.speed = self.speed + 5
def slowdown(self):
self.speed = self.speed - 5
class Truck(Car):
def speedup(self):
self.speed = self.speed + 2
def slowdown(self):
pass
def stop(self):
self.speed = 0
def main():
cars = [Truck(), Car(), SportsCar()]
for c in cars:
c.speedup()
for c in cars:
if isinstance(c, Truck):
c.stop()
print("Stopped truck")
else:
while c.speed != 0:
c.slowdown()
print("Stopped car or sportscar")Interface Segregation Principle (ISP)
Dependency Inversion Principle (DIP)
Last updated