面向对象编程启思录——读《OOD启思录》有感

    《OOD启思录》给我留下最深刻的三个印象是:首先,作者谦逊而委婉地建议面向对象成为为软件开发的首选方法。其次,作者以严谨的研究方式详细地介绍和讨论了关于面向对象编程的诸多细节性、关键性问题。同时,在附录二中总结了8类C++内存泄漏问题及对应解决方案。这些对于面向对象编程都极具启发性和指导性。

      注:阅读《OOD启思录》是因为我看到了一篇论文,该论文指出GP相对于OO有极大的优越性,该文以《Object-Oriented Design Heuristics》来说明”面向对象技术本身技术十分难以把握“,作为面向对象的一个不足点。我没有做深入研究,只是记录以下自己的想法。泛型编程如同生产汽车的现成技术,只需我们根据需求适当设计即可,而不必对汽车进行全盘的设计,这显然对于编程效率和编程质量的提高是巨大的,影响是不言而喻的。如果泛型编程像汽车生产技术一样成熟和广泛应用时,软件生产也可以变得流水线化和自动化。我的疑问是,当前的生产活动是面向需求的,尤其是面向现实物理世界的,泛型编程是否提供了从现实需求到软件生成的通用的抽象机制。如果仅仅是极少数的场景可以实现的话,以泛型编程为中心的软件设计方法就无法适应千变万化的现实需求。如果没有,抽象现实需求到软件生成的面向对象方法仍然是无法替代的。自己的认识是,面向对象不仅仅是是一种编程工具,而是可以作为一种认识论,这种认识论是严谨可推导的(读过《Thinking in UML》的认识)。我们可以通过面向对象的认识方法,以业务需求为方向、将物理世界抽象为程序世界可以理解的数据和行为,并以UML等模型展示出来,然后程序世界中的设计行动才能展开,包括泛型编程在内的诸多高级设计技巧才能开始被应用。简而言之,面向对象分析设计与原型法等建立的抽象模型是基础(读《OOD启思录》第一章的认识),在此之上,泛型编程才可以在较高的抽象层次上完成对程序的实现。

你可能感兴趣的:(面向对象编程启思录——读《OOD启思录》有感)