架构模式理解札记
个人觉得架构模式应该也有包含关系(一个主要的思想,具体实现里面包含其他的架构思想),一个应用不单单只使用了一个架构思想
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