软件系统设计的核心
来源:互联网 发布:mac键盘怎么打@ 编辑:程序博客网 时间:2024/05/16 11:25
当然我现在所说的内容都是建立在面向对象基础之上的,也就是用面向对象的语言Java或C#设计出来的的软件系统。那么软件系统设计的核心问题是什么呢?那就是如何让系统易于维护并且复用性较好,让软件系统具有可维护性和可复用性,是我们的系统要达到的目标。
要完成上述的目标,并不是一件特别容易的事情。一个完成了上述目标的软件系统必然具备可扩展性、灵活性、可插入性这三个特质。如何才能具备这三个特质呢?当然是提高软件的可维护性和复用性了,哈哈,又绕回来了。那么如何完成软件系统的设计目标呢?那就是以设计原则和设计模式为基础来设计我们的系统。
在《Java与模式》这本书中提出了一个“支持可维护性的复用”的概念,他的定义是:“在保持甚至提高系统的可维护性的同时,实现系统的复用”。(好像是废话啊!)“支持可维护性的复用”的基础就是我们上面提到的设计原则和设计模式。
设计原则有哪些?设计原则与设计模式有什么关系?
在面向对象的设计中,有六个设计原则(这些原则也都是复用原则,当然也并非全部的设计原则。):
1、 开闭原则。
2、 里氏代换原则。
3、 依赖倒转原则。
4、 接口隔离原则。
5、 组合/聚合复用原则。
6、 迪米特法则。
如何才能做到在设计中遵循这些原则,当然是会有一些方法和方式,那么这些方法和方式就是以设计模式的面目出现的。所以设计模式你可以简单把他看成是:为遵循设计原则而制定的一些指导性的方法,说的文言一些就是遵循设计原则的解决方案。设计模式可以划分为三大类别:
1、 创建模式。
2、 结构模式。
3、 行为模式。
前面我们提到,一个达到了可维护性和可复用性目标的软件系统必然具备可扩展性、灵活性、可插入性这三个特质。如何才能保证我们的软件系统具备这三个特质呢(这次不绕了)?
1、 可扩展性可以用开闭原则、里氏代换原则、依赖倒转原则、和组合/聚合复用原则来保证。换句话说你只要遵循一些设计原则你的系统就能保证达到可扩展性。
2、 灵活性可以由开闭原则、迪米特法则、接口隔离原则来保证。
3、 可插入性可以用开闭原则、里氏代换原则、组合/聚合复用原则和依赖倒转原则来保证。
具备了上述三个特质的软件系统,我们软件设计的可维护性和可复用性目标也就达到了。
我们可以想象,一个软件系统首先是从遵循设计原则出发的,然后再运用一些设计模式来保证我们遵循了设计原则。如果我们为了设计模式而设计模式,脑子里并没有太多设计原则的概念的话,那么设计模式并不会给我的工作带来方便。
关于设计原则的概念以后再写。
- 软件系统设计的核心
- 软件系统的核心价值是什么?
- 软件系统设计的模式
- 上帝设计的软件系统
- 海量数据时代的核心开源软件系统技术
- 软件模型的核心
- 软件开发的核心
- 软件开发的核心
- 软件开发管理系统的设计实现
- 如何做好软件系统的架构设计?
- 软件系统的权限数据库设计
- 软件系统的权限数据库设计
- 浅谈软件系统的结构化设计
- 软件系统设计的正交性
- 软件工程——软件的系统设计
- 软件系统设计思路
- 软件系统设计思路
- 软件系统设计思路
- Xmanager连接Linux图形界面
- 用squid再次疯狂加速你的web
- 中文分词 JE-Analysis 组件使用外部自定义词典
- WebEx增新功能 思科协同市场与微软竞争
- vb 调用 Excel
- 软件系统设计的核心
- 往表中插入日期
- dress
- 递归算法的复杂度分析
- 转:精妙SQL语句收集
- sql server 错误9003:LSN无效(日志扫描号无效)
- 正则表达式的写法
- How To Improve Programming Skills
- PKU 3700 Missile Defence System