理想的软件设计特征

1、最小复杂度

避免进行过度设计,应该做出简单且易于理解的设计。

2、易于维护

好的设计应该考虑以后维护人员的工作,应设计出能自明的系统。

3、松散耦合

在设计时让程序的各个组成部分之间关联最小。

4、可扩展性

在增强系统功能时无需破坏其底层结构。你可以改变系统的某一部分而不会影响到其他部分

5、可重用性

可重用性意味着所设计系统的组成部分能在其他系统中重复使用。

6、高扇入

高扇入是指让大量的类使用某个给定的类。这意味着设计出的系统很好的利用了在较低层次的工具类。

7、低扇出

低扇出是指让一个类里少量或适中的使用其他的类。高扇出(超过7个)说明一个类大量使用了其他类,因此可能变得过于复杂。

8、可移植性

设计出的系统应该能很方便的移植到其他环境中。

9、精简性

精简性意味着设计出的系统没有多余的代码。伏尔泰曾说,一本书的完成不在它不能再加入任何内容的时候,而在它不能再删去任何内容的时候。要问这个关键的问题:“这虽然简单,但把它加进来后会损害什么”。

10、层次性

层次性意味着尽量保持系统各个分解层的层次性,使你能在任意的层面上观察系统,并得到某种具有一致性的看法。设计出的系统应该能在任意层次上观察而不需要进入其他层次。
举例来说,假设你在编写一个新系统,其中用到很多设计不佳的旧代码。这时你就应该为新系统编写一个负责同旧代码交互的层,在设计这一层时,要让它能隐藏旧代码的低劣质量,同时为新的层次提供一组一致的服务。这样你的系统的其他部分就只需与这一层进行交互,而无须直接同旧代码打交道了。在这个例子中,层次化设计的益处有:(1)它把低劣代码的烂泥潭紧闭起来;(2)如果你最终能抛弃或者重构旧代码,那时就不必修改除交互层之外的任何新代码。

11、标准技术

一个系统所依赖的外来的、古怪的系统越多,别人在第一次想要理解它的时候越头疼。要尽量使用标准化的、常用的方法,让整个系统给人一种熟悉的感觉。

你可能感兴趣的:(理想的软件设计特征)