当前位置:首页 > 幼儿教育 > 正文

什么是系统设计的核心?

当然我现在所说的内容都是建立在面向对象基础之上的,也就是用面向对象的语言Java或C#设计出来的的软件系统。那么软件系统设计的核心问题是什么呢?那就是如何让系统易于维护并且复用性较好,让软件系统具有可维护性和可复用性,是我们的系统要达到的目标。

要完成上述的目标,并不是一件特别容易的事情。一个完成了上述目标的软件系统必然具备可扩展性、灵活性、可插入性这三个特质。如何才能具备这三个特质呢?当然是提高软件的可维护性和复用性了,哈哈,又绕回来了。那么如何完成软件系统的设计目标呢?那就是以设计原则和设计模式为基础来设计我们的系统。

在《Java与模式》这本书中提出了一个“支持可维护性的复用”的概念,他的定义是:“在保持甚至提高系统的可维护性的同时,实现系统的复用”。(好像是废话啊!)“支持可维护性的复用”的基础就是我们上面提到的设计原则和设计模式。

设计原则有哪些?设计原则与设计模式有什么关系?

在面向对象的设计中,有六个设计原则(这些原则也都是复用原则,当然也并非全部的设计原则。):

1、 开闭原则。

2、 里氏代换原则。

3、 依赖倒转原则。

4、 接口隔离原则。

5、 组合/聚合复用原则。

6、 迪米特法则。

如何才能做到在设计中遵循这些原则,当然是会有一些方法和方式,那么这些方法和方式就是以设计模式的面目出现的。所以设计模式你可以简单把他看成是:为遵循设计原则而制定的一些指导性的方法,说的文言一些就是遵循设计原则的解决方案。设计模式可以划分为三大类别:

1、 创建模式。

2、 结构模式。

3、 行为模式。

前面我们提到,一个达到了可维护性和可复用性目标的软件系统必然具备可扩展性、灵活性、可插入性这三个特质。如何才能保证我们的软件系统具备这三个特质呢(这次不绕了)?

1、 可扩展性可以用开闭原则、里氏代换原则、依赖倒转原则、和组合/聚合复用原则来保证。换句话说你只要遵循一些设计原则你的系统就能保证达到可扩展性。

2、 灵活性可以由开闭原则、迪米特法则、接口隔离原则来保证。

3、 可插入性可以用开闭原则、里氏代换原则、组合/聚合复用原则和依赖倒转原则来保证。

具备了上述三个特质的软件系统,我们软件设计的可维护性和可复用性目标也就达到了。

我们可以想象,一个软件系统首先是从遵循设计原则