设计模式优劣漫谈

《设计模式》这本书从 1994 年发布。此书作者是由四位作者共同编写。所以简称 Gof (“Gang of Four”,“四人帮”)。此书被很多开发者视为圣经。是指导开发的一本难得之书。

博主自从工作以来,就总会不经意从身边的同事口中提到设计模式。包括我们的 PHP 官方文档当中,也提及了单例、工厂两种模式。最近看了王垠的博客对设计模式的一些看法。我觉得大部分我都是非常认同的。这篇博客中提到:

GoF 借鉴的是一个叫 Christopher Alexander 的建筑师的做法。Alexander 给一些建筑学里的“设计模式”起了名字,试图让建筑师们有一些“共同语言”。可惜的是,Alexander 后来自己都承认,他的实验失败了。因为这些固定的模式,并没能有效地传递精髓的知识,没能让新手成长为出色的建筑师。
照搬模式东拼西凑,而不能抓住事物的本质,没有“灵感”,其实是设计不出好东西的。这就像照搬“模版”把作文写得再好,也成不了作家一样。

通篇读了王垠的博文之后,我的总结就是:设计模式仅仅是给我们开发中常用的一些设计思路起了一个名字而已。不要把设计模式生搬硬套到业务当中。只要做到易读、易维护就好。

比如,我们常用的单例模式。就是为了解决应用程序当中大量数据库连接导致数据库资源耗尽。当然,单例本不仅仅用于数据库连接。也有可能是其他的 Redis 连接、Kafka 连接等。

为了所有的开发人员能对这种设计思想有一个统一的认识,就取了一个单例模式的名儿而已。不然的话,A 开发者叫这种模式为上帝模式,B 开发者叫这种模式为地狱模式。那到时候大家沟通起来就很困难了。

所以,设计模式大家不要生搬硬套。不要以为在自己代码中用上了这些设计模式就比别人代码高一个档次了。说不定用错了,性能、易读性、易维护性通通负分了。

最好的程序应该考虑易读、易维护、性能这三者。不要盲目追求设计模式在代码中的应用。

博主 2011 年创建了一个《PHP 初学者官方群》,目前群成员 500 人左右。群号:168159147。为了防止广告,设置为付费入群。欢迎大家加入讨论技术!

标签: 无

精彩评论
  1. 评论次数验证~

发表评论: