GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — python-patterns/front_controller.py at master · MadRiw/python-patterns Expand file tree/ Copy pathfront_controller.pyMore file actions 75 lines (55 loc) · 1.9 KB / Copy pathfront_controller.pyFile metadata and controls75 lines (55 loc) · 1.9 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 #!/usr/bin/env python # -*- coding: utf-8 -*- """ @author: Gordeev Andrey <[email protected]> The controller provides a centralized entry point that controls and manages request handling. """ class MobileView(object): def show_index_page(self): print('Displaying mobile index page') class TabletView(object): def show_index_page(self): print('Displaying tablet index page') class Dispatcher(object): def __init__(self): self.mobile_view = MobileView() self.tablet_view = TabletView() def dispatch(self, request): if request.type == Request.mobile_type: self.mobile_view.show_index_page() elif request.type == Request.tablet_type: self.tablet_view.show_index_page() else: print('cant dispatch the request') class RequestController(object): """ front controller """ def __init__(self): self.dispatcher = Dispatcher() def dispatch_request(self, request): if isinstance(request, Request): self.dispatcher.dispatch(request) else: print('request must be a Request object') class Request(object): """ request """ mobile_type = 'mobile' tablet_type = 'tablet' def __init__(self, request): self.type = None request = request.lower() if request == self.mobile_type: self.type = self.mobile_type elif request == self.tablet_type: self.type = self.tablet_type if __name__ == '__main__': front_controller = RequestController() front_controller.dispatch_request(Request('mobile')) front_controller.dispatch_request(Request('tablet')) front_controller.dispatch_request(Request('desktop')) front_controller.dispatch_request('mobile') ### OUTPUT ### # Displaying mobile index page # Displaying tablet index page # cant dispatch the request # request must be a Request object |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |