A Simple Factory Pattern Implementation in Python
import sys
class Usecase:
@staticmethod
def getClassFromStr(usecase):
return getattr(sys.modules[__name__], usecase)
@classmethod
def getUsecase(cls, usecase):
try:
if issubclass(Usecase.getClassFromStr(usecase), Usecase):
return Usecase.getClassFromStr(usecase)()
else:
print("Not a valid usecase")
return None except AttributeError:
print("Not a valid class")
return None
class AllStops(Usecase):
def __init__(self):
print("AllStops")
class StopDetails(Usecase):
def __init__(self):
print("StopDetails")
class Other:
def __init__(self):
print("Other")
if __name__ == '__main__':
a = Usecase.getUsecase("AllStops")
b = Usecase.getUsecase("StopDetails")
c = Usecase.getUsecase("ABC")
d = Usecase.getUsecase("Other")
import sys
class Usecase:
@staticmethod
def getClassFromStr(usecase):
return getattr(sys.modules[__name__], usecase)
class Usecase:
@staticmethod
def getClassFromStr(usecase):
return getattr(sys.modules[__name__], usecase)
@classmethod
def getUsecase(cls, usecase):
try:
if issubclass(Usecase.getClassFromStr(usecase), Usecase):
return Usecase.getClassFromStr(usecase)()
else:
print("Not a valid usecase")
return None except AttributeError:
print("Not a valid class")
return None
class AllStops(Usecase):
def __init__(self):
print("AllStops")
class StopDetails(Usecase):
def __init__(self):
print("StopDetails")
def __init__(self):
print("StopDetails")
class Other:
def __init__(self):
print("Other")
if __name__ == '__main__':
a = Usecase.getUsecase("AllStops")
b = Usecase.getUsecase("StopDetails")
c = Usecase.getUsecase("ABC")
d = Usecase.getUsecase("Other")