Head First设计模式(十二) 设计原则 复合模式

复合模式:

模式通常被一起使用,并结合在同一个设计解决方案中。

复合模式在一个解决方案中结合两个或多个模式,以解决一般的或重复发生的问题。

模型-视图-控制器(MVC):

视图:

呈现模型,视图通常直接从模型中取得显示所需的状态和数据。

控制器:

取得用户输入并解读其对模型的含义。

模型:

模型持有所有数据,状态和应用逻辑。模型对视图和控制器是无视的,虽然它提供了操纵和检索其状态的接口,并发送状态改变通知给观察者。

要点:

  1. 模型-视图-控制器(MVC)是复合模式 ,结合了观察者,策略和组合模式。
  2. 模型 使用观察者模式,以便可以保持观察者跟新,同时依然保持两者之间解耦。
  3. 控制器 是视图 的策略,视图可以使用不同的控制器实现,得到不同的行为。
  4. 视图 使用组合模式实现用户界面。用户界面通常组合了嵌套的组件,像面板,框架和按钮。
  5. 这些模式携手合作,解耦了MVC模型的三个层,这样可以保持设计干净又有弹性。
  6. 适配器模式用于把新的模型适配到已有的视图和控制器。
  7. MVC已经被适配到Web。
  8. 把MVC模式适配到各种客户/服务器的应用结构,就得到许多Web MVC框架。
相关推荐
2302_805771077 小时前
Day23:POM设计模式(封装)
java·开发语言·设计模式
范中勤1 天前
技术文档:模型工厂 `llm_provider` / `llm_use` 分层设计
设计模式·langchain·架构设计·模型工厂·llm_provider
浅尝辄止;1 天前
设计模式在HIS/LIS医疗系统中的完整实践指南(C#版)
开发语言·设计模式·c#
范中勤1 天前
适配器模式(Adapter Pattern):原理、场景与 LLM 多厂商工程落地
设计模式·架构·langchain·适配器模式·多厂商
408高手2 天前
23种设计模式
设计模式
沫璃染墨2 天前
《Linux工程实践篇(二):线程池实战——从线程安全单例到完整源码实现》
linux·开发语言·c++·单例模式·设计模式·系统架构
sarasuki2 天前
MCP 为什么是一个协议而不是一个框架呢?
设计模式·agent·mcp
geovindu2 天前
rust: Borg Pattern(续)
开发语言·后端·设计模式·rust·博格模式
染指11103 天前
140.Agent-多Agent框架-Agent执行Skills流程
数据库·人工智能·设计模式·langchain·agents
sarasuki3 天前
Agent 是怎么做错误处理的呢?
人工智能·设计模式·agent