软件小设计

董向阳
前言 计算机编程诞生至今,理论和实践的发展越来越丰富,各种编程语言也如雨后春笋般不断出现,不断壮大,不断消亡;随之而来的就是各种介绍计算机程序设计的书籍不断涌现。 在这些著作中,不仅有介绍编程语言的书,如初级的语言规范介绍、中级的语言特性应用、高级的设计模式和软件架构的实现,还有介绍编程技巧的书,如对象的设计、算法的分析、重构的实施、框架的应用,等等。这些书大部分都十分经典,内容集中在某一个具体的方面,就好比一颗颗珍珠零散地放在我们的案头上。 对于我这样从程序员过来的人来说,从入行的那天起,就不断地有高人给我推荐这些由浅入深的经典到不能再经典的书籍,于是我不断地采购这些书籍。每当手里拎起这些沉重的书时,我就会深深地体会到知识的厚重。当然,从这些作者流畅而严谨的述说中,我还是逐渐地学习到了程序设计的各种知识。 在这样的情况下,有一天,在思考之余,我的脑中忽然有了一些大胆的想法:能否有一本书把这些经典的知识串起来,形成一个完整的体系呢?并且能否在这些理论和实践的基础上,再深挖一下设计本来的面目呢?良好的设计是否真的像那些高深的书籍描述的那样是那么高不可攀,必须要经过多年的修炼才能谈及呢?良好的设计是否真的需要那几十本厚重的书才能描述清楚吗? 为了回答这些问题,我决定写些什么,这是本书的写作初衷。有时想想,觉得我还真的有点不自量力,但是反过来想想,我又觉得,不妨就当抛砖引玉吧。我真心希望这本拙劣的小书能引起真正想学习编程技术的读者们的思考,能自己找到这些问题的答案。 本书将从最基本的面向对象编程开始,探讨面向对象设计中的基本概念,比如对象、元素、继承、多态等;然后,会探讨面向对象设计的基本原则;随后,会在这些思想和原则的基础上分析设计的基本流程及可能遇到的各种问题。在最后一部分,我们会脱离面向对象的束缚,直面设计的自然面貌。 书中的例子大部分都使用C#来实现,一部分例子使用Ja…