Monday, May 1, 2017

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")


Output :

AllStops
StopDetails
Not a valid class
Not a valid usecase

No comments:

Post a Comment

A Simple Factory Pattern Implementation in Python  import sys class Usecase :     @ staticmethod          def getClassFromStr (use...