Quick actions

cmd+k|ctrl+k

Navigation

Languages

3 Dependency Injection done

Snippet info

Language

Python

Visibility

public

Author

johan.van.breda

Created

2019-03-13T10:33:57Z

Updated

2019-03-13T11:30:16Z

class AbstractProcessor() :
    def __init__(self,data) :
        self.data = data
    def run(self) :
        pass
    
class MsgProcessor(AbstractProcessor) :
    def __init__(self,data) :
        super(MsgProcessor,self).__init__(data)
    def run(self) :
        print('The message is: ' + str(self.data))

class AskProcessor(AbstractProcessor) :
    def __init__(self,data) :
        super(AskProcessor,self).__init__(data)
    def run(self) :
        print('The question is: ' + str(self.data))
        
class Runner() :
    def __init__(self,processor) :
        self.processor = processor
    def process(self) :
        if self.processor :
            self.processor.run()
        
def main(argv) :
    try :
        runner = None
        if len(argv) > 1 :
            if argv[0] == 'msg' :
                # says 'the message is: <message>'
                runner = Runner(MsgProcessor(argv[1]))
            elif argv[0] == 'ask' :
                # says 'the question is: <message>'
                runner = Runner(AskProcessor(argv[1]))
        if runner :
            runner.process()
    except Exception as e :
        print('main: exception occurred ' + str(e))
        
if __name__ == '__main__' :
    try :
        argv = []
        argv.append('msg')
        argv.append('is this a message')
        main(argv)
    except (SystemExit,KeyboardInterrup) :
        pass
INFO