目的和问题:
除了依赖关系,还要规范操作系统适配层的所有接口,只要操作系统适配层的接口在移植过程中始终保持稳定,框架层的设计和实现就不会收到影响,但是为了实现同一接口的目标,为了保证同样的功能接口可以适用于不同的操作系统,必须对操作系统适配层进行更进一步的分解和细化
子系统设计:
子系统设计属于面向对象设计的范畴,是在面向对象分析工作结束之后进行的,对于那些相对独立却又比较复杂,不能用一个类来概述的分析类,我们可以把它们定义为一个子系统,同时精确地定义子系统的几口。子系统通过接口与其他的类和对象协同工作,实现整个系统功能,子系统设计是对系统架构的进一步细化,是对架构中的特定层次进行的更为精密的划分
子系统必须实现一个或者多个接口,这些接口清晰地定义了子系统的行为,这样除了对外的接口,子系统将内部的数据和操作完全封装了起来。对于一个接口固定的子系统而言,我们可以更具需要替换其内部结构和实现
子系统和包的区别:
- 子系统通过接口清晰地定义了自己的行为,但是普通的包一般不会这样做
- 子系统完全封装了它的内部数据和操作,普通包知识部分封装
- 子系统很容易被替换,普通的包不太容易被替换
- 子系统清晰地定义了接口,外部客户通过接口来访问该子系统,而包一般不定义接口,外部客户通过一个或者多个公共类来访问包---外部客户对于子系统和包的不同访问方式如下
因此子系统设计的首要目标是把一个组件中较复杂的部分抽象为固定的接口,在后续的详细设计时,就可以用接口来替换整个子系统,通过这种方式,可以有效地分离系统的复杂性,简化大型系统或大型模块的设计过程
FishiGUI的子系统设计:
对于不同的操作系统,操作系统适配层的实现可能大相径庭,但是为了保证框架层和应用层的稳定,操作系统适配层中不同的实现代码应该能在保持接口稳定的前提下自由替换,要求合理地设计操作系统适配层中的子系统并且精确定义子系统的几口
时间: 2024-10-26 11:16:30