10种常见软件架构

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、解释器模式

    用于设计一个解释用专用语言编写的程序组件,基本思想是:每种语言的符号都有一个分类,灵活性高,但是性能需要考虑

    应用:数据库查询语句,通信协议的语音

                                

转载于:https://my.oschina.net/nisir/blog/3033383

你可能感兴趣的:(10种常见软件架构)