1、分层模式
2、客户端-服务端模式
3、主从设备模式
4、管道-过滤器模式
5、代理模式
6、点对点模式
7、时间总线模式
8、mvc模式
9、黑板模式
10、解释器模式
分析:
1、分层
应用:桌面应用,电商web应用
常见4层,ui,服务层(应用层),逻辑层,持久层(数据层)
2、客户端-服务器
应用:邮件,文件共享,在线应用
Client==(TCP/IP)==SERVER
3、主从模式
将服务的执行交给不同设备,具有不同的实现
应用:数据库同步,主从驱动器
Master
==》slave1
==》slave2
==》slave3
。。。。。。
4、管道-过滤器
常见处理并发,多个过滤器受制于最慢的过滤器
应用:编译器,工作流
Source==》Filter1==》filter2。。。==》sink
5、代理模式
应用于解耦组件的分布式系统
应用:消息代理
client==》Broker==》server1
==》server2
==》server3
6、点对点
自由转换为客户端,服务器
应用:文件网络共享,多媒体协议,p2p,
Peer1(Client and Server)《== ==》Peer2(Client and Server)
7、事件总线模式
事件源,事件监听器,通道,事件总线
信息发布在订阅通道上,监听器监听总线,容易添加发布者和订阅者,但受制于总线宽度
应用:通知服务
Source 1 ==》| Channel1 |==》Listener1
| BUS |
Source 1 ==》| Channel2 |==》Listener1
8、MVC模式
模型,视图,控制器
应用:各类前端框架,体系架构,但会增加系统复杂性
9、黑板模式
黑板:包含来自解决方案空间的对象的结构化全局内存
知识源:专门的模块和表示
控制组件:选择、配置、执行模块
应用:语音识别,车辆识别,声呐信号解释
运行模式:所有组件都可以访问黑板,组件可以生成添加到黑板上的新数据对象,组件在黑板上查找特定类型的数据,并通过与现有知识源的模式匹配来查找这些数据。
容易添加新的应用程序,扩展数据空间的结构简单,但修改数据空间结构非常困难,所有应用程序都收到影响,
blackboard=solutions:inspect(),update()
Control:loop(),nextSource()
KnowledgeSource:updateBlackboard()
blackboard <====
^ ||
Control==>KnowledgeSource
10、解释器模式
用于设计一个解释用专用语言编写的程序组件,基本思想是:每种语言的符号都有一个分类,灵活性高,但是性能需要考虑
应用:数据库查询语句,通信协议的语音