为什么要学习设计模式?

作为一名有着多年编程和架构经验的人员,我肯定的讲GoF的设计模式使我的系统更加的健壮和可移植。想象一下,目前已经烂大街的Spring,用的就是抽象工厂和工厂模式,回调函数用的是观察者模式,servlet中的filter使用的是chain of responsibility模式,对于第三方的库一律使用代理模式,对于系统中的各个功能模块使用了装饰者模式来进行执行的权限控制和监控。
如果说设计模式无用,要么就是编程经验并不丰富,要么就是未曾体会到设计模式带来的好处!

设计模式的原则

单一职责原则 SRP (Simple Responsibility Principle)

一个类应该仅有一个引起它变化的原因。
实际中,很难确定责任的边界。

开放-关闭原则 OCP

一个类应该对扩展开放,对修改关闭。

依赖倒置原则 DIP

要依赖于抽象,不要依赖于具体的类。

。。。还有很多,用到再加。