设计模式概述
一个成熟的系统设计者,往往能设计出比较优秀的代码,就跟一个建筑设计师一样。我们经常能客观的感觉到这个建筑的魅力,我们往往惊叹其雄伟、漂亮、壮观、震感。这个就是建筑给我们带来的直观感觉。而程序,往往没有这么直观的冲击,有时候,我们自然而然的使用了某个设计模式。但是因为我们没有系统的学习过设计模式,所以我们不知道。简单举例:在现在很流行的微服务架构里面,是不是有个网关API?这个网关API,就是门面模式 (Facade),是不是一下子就有了感觉,原来设计模式一直都在我身边,只是我没有发现。所以,其实设计模式,就是总结好旧的经验,用来解决新的问题。
本篇只是设计模式的概述,我简单介绍一下我后续博客里面更新使用到的相关书籍或者视频。
《设计模式:可复用面向对象软件的基础》
《设计模式之禅》
《深入浅出设计模式》
-
“马士兵老师讲解的设计模式视频”,这个很多视频网站都有。
设计模式从使用的最终目的上来分,分为三种:
创建型设计模式
结构性设计模式
行为型设计模式
这三类总计包括了23种设计模式,这里我就不一一列举,其实大家可有百度或者随便找本书都能查到,列出来我怕大家看了就不想学习。以下我将列出来我认为最重要的几种设计模式,可能也是面试问得最多的几种设计模式。
单例模式(Singleton):几乎面试必问,其实也是非常常见的设计模式。
工厂方法模式(Factory Method):也是非常常见,大家应该基本都听过。
抽象工厂(Abstract Factory):抽象工厂,是工厂模式的升级,工厂是生成产品,抽象工厂,则是生成产品族。
代理模式(Proxy):这个很重要,必须要弄明白。
责任链模式(Chain of Responsibility):也经常用到,不能忽略。
-
观察者模式(Observer):这也是比较重要的一个模式。
当然,其他的设计模式,也是非常有作用,但是我个人认为,它们没有我以上列举的几种设计模式重要。后续我会分别对每一种设计模式展开说明。