关于软件设计的一点思考
关于软件设计的一点思考
编码之前,首先要进行设计,一个良好的软件设计通常涵盖如下几点:
松耦合高内聚:类的职责明确,每个函数最好都是功能上的内聚。函数之间通信的参数传递不应超过7个,如果有过多的参数,应抽象为对象。模块与模块,类与类,函数与函数之间应该做好信息的隐藏。每个类不但要完成自己要做的事情,也要负责暴露良好的接口给外部调用。
抽象。对系统进行抽象,开发者可以站在不同的层次观察整个系统(降低了复杂度),每个层次都向高层的类提供一致的抽象(接口)。数据有时也需要抽象、结构化。隐藏细节,隔离变化,减少改变、重构带来的代价。
可扩展。每一个良好的设计一定具备良好的扩展性,当需要新增功能时通常只需要增加某个类(同时继承一个抽象类或实现某个接口)来完成特定的任务。
可重用性。提高每个模块、类、函数的内聚性是提高其可重用性重要的手段之一。
高扇入。意味系统中大量的使用了某个类。
低扇出。一个类尽可能少的调用其他类。
可移植性。可以顺利的运行在其他的操作系统中。