1、最小复杂度。设计的手艺好目标就是要复杂度最小,避免作出“聪明的”设计,因为“聪明的”设计常常难以理解
2、易于维护。 易于维护意味着在设计时为做维护的程序员着想。
3、松散耦合。松散耦合意味着在设计时让程序各个组织称部分之间的管理关系最小。通过应用类接口中合理还凑向、封装及信息隐藏等原则设计出相互关联尽可能小的类。减少关联也就是减少了集成、测试和维护时的工作量。
3、可扩展性。可扩展性是只可以增强系统功能而无须改变底层结构,可以改变某一个方面功能而不影响其他部分。
4、可重用性。可重用意味着代码可以在其他系统的组成部分中重复使用,降低整体的成本和提高生产效率。
5、高扇入。高扇入就是说让大量的类是有那个某个给定的类。这就是意味着设计出的系统很好的利用较低层次上的工具类。
6、低扇出。低扇出就是让一个类里少量或者适中的使用其他的类。高扇出说明了一个类使用了大量其他的类,因此可能变得过于复杂。
7、可移植性。可移植性是说应该设计的系统很方便的移植到其他的环境中。
8、精简性。精简就意味着系统没有多余的部分。这样有利于后面的单元测试。
9、层次性。层次性就意味着尽量保持系统各个层次保持可分解,使你能在任何层面观察系统。
10、标准技术。一个系统所依赖的外来的,古怪的东西越多,别人在第一次想要理解它的时候就越头痛。尽量使用标准化,常用的方法,让整个系统给人一种熟悉的感觉。