zoukankan      html  css  js  c++  java
  • Python设计模式之MVC模式

    # -*- coding: utf-8 -*-
    # author:baoshan
    
    quotes = ('A man is not complete until he is married. Then he is finished.',
              'As I said before, I never repeat myself.',
              'Behind a successful man is an exhausted woman.',
              'Black holes really suck...', 'Facts are subborn things.')
    
    
    class QuoteMode:
        def get_quote(self, n):
            try:
                value = quotes(n)
            except IndexError as err:
                value = 'Not found!'
            return value
    
    
    class QuoteTerminalView:
        def show(self, quote):
            print('And the quote is: "{}"'.format(quote))
    
        def error(self, msg):
            print('Error: {}'.format(msg))
    
        def select_quote(self):
            return input('Which quote number would you like to see?')
    
    
    class QuoteTerminalController:
        def __init__(self):
            self.mode = QuoteMode()
            self.view = QuoteTerminalView()
    
        def run(self):
            valid_input = False
            while not valid_input:
                n = self.view.select_quote()
                try:
                    n = int(n)
                except ValueError as err:
                    self.view.error("Incorrect index '{}'".format(n))
                else:
                    valid_input = True
            quote = self.mode.get_quote(n)
            self.view.show(quote)
    
    
    def main():
        controller = QuoteTerminalController()
        while True:
            controller.run()
    
    if __name__ == '__main__':
        main()

    代码展示,如何设计MVC模式

    参考自:精通Python设计模式 之 MVC模式

  • 相关阅读:
    磁盘管理
    TCP/IP四层模型
    OSI七层模型详解
    kvm虚拟机
    mount 文件挂载
    ORA-01017: 用户名/口令无效; 登录被拒绝
    mybatis配置文件形式
    Spring+mybatis整合
    xmlBean学习二
    xmlBean学习一
  • 原文地址:https://www.cnblogs.com/zhzhang/p/11338595.html
Copyright © 2011-2022 走看看