zoukankan      html  css  js  c++  java
  • 设计模式-结构型模式, mvc 模型视图控制器模式(8)

    MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

    • Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
    • View(视图) - 视图代表模型包含的数据的可视化。
    • Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。
    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 stubborn things.')
    
    
    class QuoteModel:
    
        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.model = QuoteModel()
            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.model.get_quote(n)
            self.view.show(quote)
    
    
    def main():
        controller = QuoteTerminalController()
        while True:
            controller.run()
    
    if __name__ == '__main__':
        main()
  • 相关阅读:
    python 取整的两种方法
    django class-based view 考古
    django缓存基于类的视图
    MySQL参数优化案例
    django后台使用MySQL情况下的事务控制详解
    讲讲python“=”运算符上的优雅语法
    p标签不折行的问题
    django-TDD
    session 和 flask_session 实现原理(源码解析)
    网关地址和网关IP是什么,他们有什么关系?
  • 原文地址:https://www.cnblogs.com/ydf0509/p/8525949.html
Copyright © 2011-2022 走看看