架构模式理解札记

个人觉得架构模式应该也有包含关系(一个主要的思想,具体实现里面包含其他的架构思想),一个应用不单单只使用了一个架构思想

1.分层模式   UI层->应用层->业务层->数据层

主要用于当页面交互的桌面应用,点击UI->触发功能->实现业务->操作数据,举个例子 去机器上面点击取号,执行取号功能模块,输入/选择具体业务信息触发业务实现逻辑代码,操作数据库添加预约信息。

2.客户端/服务器模式

一端组合拼接请求并发送到服务器端,服务器端专门处理业务逻辑和数据处理,将处理结果返回给到客户端

3.主从模式

一个大对象实现大部分功能,大对象创建其他小对象来实现一些特殊的功能(如一个应用的多线程,公司招人来干活)

4.管道-过滤器模式

一个工作切分为多个步骤,上一步的结果为下一步的输入,最终返回结果。例如源代码到执行文件的过程、GPUImage滤镜功能

5.代理模式(有问题通过经纪人来沟通)

6.P2P模式(对象既可以做客户端又可以做服务端,角色随时间场景变化而变换)

7.事件-总线模式

事件触发之后,由常驻对象来派发消息,其他对象订阅消息,并执行自己的业务逻辑(通知、KVO)

8.MVC模式 视图 模型 控制器 

控制器持有视图和模型,通过控制器来实现视图和模型的交互

9.黑板模式 (语音识别、图片识别)

运用于识别功能

10.解释器模式(数据库SQL语句查询、通信协议)

格式化数据用于传递 信息/指令

11.微内核模式(IDE最重要的核心是编辑和显示等,至于提醒逻辑、显示样式、编译等这些具体规则都是不确定的)

一个核心类实现基础功能,定义基本逻辑。由其他类拓展实现功能

12.微服务模式

将功能拆分为粒度很小独立的功能模块

 13.基于空间的架构模式(云架构模式)

用于处理大数据量处理的情况,将一些和功能模块相关的数据库数据在内存中缓存起来(加速访问、适时同步),同时创建的处理单元保留一份数据副本,根据用户访问量变化情况,动态创建/移除处理单元。(FMDB 的 FMDatabasePool)

参考链接

https://blog.csdn.net/jcq521045349/article/details/104734323/

http://www.voidcn.com/article/p-tmghjkgk-bnr.html

https://www.cnblogs.com/IcanFixIt/p/7518146.html

原文地址:https://www.cnblogs.com/yuxiaoyiyou/p/14820928.html