编程随想(更2015.11.13)

编程随想

多模块交互模式思考

三种模式

  1. 网络模式
    • 每个模块都是同等地位,交互式是直接和其他模块交互。模块内封装发送操作和接受处理,并且配置信息发送的路由。
    • 优势:与其他模块直接交互,效率高。
    • 劣势:多模块交互时,消息不好管理。不容易理清关系。
    • 适用场景:模块较少,模块相互独立,模块交互简单。
  2. 放射模式
    • 有一个转发模块,其他模块都与这个模块交互。所有的消息发送都在转发模块中配置。其他模块内只封装发送操作和接受处理。
    • 优势:从装法模块可以清晰看出模块间交互,方便管理。
    • 劣势:经过转发模块,降低效率。
    • 适用场景:模块较多,模块相互独立,模块交互复杂。
  3. 包含模式
    • 模块保存交互模块引用,直接通过调用交互模块的共有接口实现交互。
    • 优势:直接,高效,没用冗余功能
    • 劣势:高度依赖;多模块交互时,逻辑复杂;会引起重复包含
    • 适用场景:模块间存在明显的依赖关系和上下级关系。

模式组合

  1. 包含模式+放射模式
    • 场景:多个输入输出模块和多个处理模块,输入输出模块和处理模块关系复杂。
    • 形式:输入输出模块和处理模块间,以及输入输出模块之间采用放射模式。处理模块之间使用包含模式,如果处理模块比较多,交互复杂,可替换为网络模式。
  2. 包含模式+网络模式
    • 场景:少数的输入输出模块和少数当规模较大的处理模块
    • 形式:处理模块精心细分上下级关系,并通过包含模式精心交互。处理模块与输入输出模块模块使用网络模式。

模块分类

数据中心

内存数据。从界面中提取出来的数据,由后台服务处理修改后通知界面更新。

IO模块

提供输入输出模块,包括界面,文件,网络,数据库等。

服务模块

处理业务逻辑。

Created with Raphaël 2.1.0 IO模块 IO模块 服务模块 服务模块 数据中心 数据中心 鼠标键盘,网络IO触发 服务模块处理完数据后更新数据中心 提示界面更新 网络IO返回数据

纯虚类(接口)和继承类

纯虚类

纯虚类适用于提供接口,基类实现简单,只有接口定义。子类除了实现基类接口,可能还有其他业务接口。子类本身提供主要服务,通过接口可以提供部分专业服务。
- 提供全服务:子类
- 特点:可以提供部分服务
- 缺点:全服务的灵活性差

继承类

继承类适用于实现接口。基类的接口涵盖子类的所有接口,子类仅仅实现基类中未实现的接口。以子类创建,但使用的时候基本上是通过基类提供服务。
- 提供全服务:基类
- 特点:全服务的部分服务可以提供不一样的实现
- 缺点:基类接口庞大,容易制造超级大类

衍生组合

组合对接口和继承类的结合,适用于子类这个更时候称之为承载类,并没有继承关系,下同)中未实现的接口与子类本身定位不是必要的,可通过组合实现。具体是创建一个新纯虚类,其中包括子类的未实现接口。子类创建纯虚类的引用。子类通过调用纯虚类的接口来实现未实现的接口,而纯虚类的接口则通过其继承类来实现。
- 提供全服务:子类(承载类)
- 特点:全服务的部分服务可以提供不一样的实现,可以提供部分服务
- 缺点:弱化接口与子类的关系(对于耦合性来说可能是好事,但是涉及到业务的话,如果是接口是子类的必要接口,就不应该弱化这种依赖关系

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值