1. 程式人生 > >設計模式, mvc 模型視圖控制器模式(8)

設計模式, mvc 模型視圖控制器模式(8)

== 器) urn indexer 分層 myself all 模型 log

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

設計模式, mvc 模型視圖控制器模式(8)