从面向对象的设计模式看软件设计
这篇文章源于作者之前一篇关于面向对象编程的文章引发的讨论。作者在文中提出了一个颇具颠覆性的核心观点:经典的23个GoF设计模式,其思想与面向对象(OO)编程关系不大,反而与Unix的设计哲学高度契合,OO仅仅是一种实现手段。 作者通过大量生活化的类比(如工厂生产、家庭装修、游戏难度)与Unix系统中的具体实现(如文件抽象、/etc/rcX.d启动模式、进程Fork、锁文件、管道命令),逐一剖析了Factory、Abstract Factory、Singleton、Adapter、Decorator等常见模式。他指出,这些模式描述的是一种通用的问题解决“模式(Pattern)”,完全可以脱离OO语言,用配置文件、命令行工具、进程通信等非OO的方式实现。 文章的最终目的,是帮助读者打破对设计模式的教条认知,认识到它们是超越具体编程范式的通用设计思想,而Unix/Linux系统正是这些思想丰富而优雅的实践范例。