实现一个系统时,需要将其分为不同的层次上进行设计;各层次如下:
1 软件系统
确定系统的框架结构;
2 分解为子系统或包
将系统合理的分解为解不同的子系统,确定不同子系统之间的通信规则;
常用的子系统:
业务规则:依赖于具体的业务;
用户界面:处理用户界面交互,窗口管理等;
数据库访问:隐藏数据实现细节,提供抽象的数据访问接口;
对系统的依赖性:对特定的系统依赖性进行封装;
这两个给人的感觉就太不一样!
3 分解子系统中的类
子系统由多个类构成,对问题进行抽象,设计不同的类完成相应的功能;
基于接口的编程,类之间的通信方式;
4 分解成子程序
确定类的细节属性和方法,类的内部结构和流程,公有保护私有类型;考虑类的扩展性;
5 子程序的设计
编写类中每个方法的代码功能实现:伪代码,算法,逻辑,组织方式。
大致的方向如此,还需具体问题具体对待。
每一层次设计需要关注的力度和所重点关注的对象是不一样的。
下面看一下建筑物层次设计:
这就是建筑学的层次设计原则,其关键就是按照结构的稳固度对建筑物的结构进行划分。
稳固度的反面就是变化的可能性;这一设计原则按照变化的难易程度将结构分割成不同层次,
位于最底部的是最稳固、最难以改变的结构,越往上就是稳固性越低、变化越容易的结构。
因此Frank Duffy说,作为一个设计师,你应当避免为一个五分钟的问题提供
一个五十年的解决方案,也不要为一个五十年的问题提供一个五分钟的解决方案。
建筑设计师、服务工程师、空间计划师、室内装修师应当解决不同时间尺度上的问题。
引自:http://www.yongfa365.com/item/RuanJianDeJiaGouYuSheJiMoShiZhiCengCiYuanZe.html