框架中常见的设计模式有哪些
设计模式的作用:通过设计模式写代码,设计模式可以解耦(解耦只是一种思想,代码开发的时候,把代码分开便于维护和管理,运行的时候再合并起来运行)
回顾软件设计原则
-
开闭原则:对扩展开放,对修改关闭(使用范围特变广)
-
单一职责原则:一个类,一个接口,一个方法只做一件事情保证类,接口,方法的单一性和承接性
-
依赖倒置原则:通过一个抽象类/接口,使各个类或者模块相互不影响,实现松耦合
-
接口隔离原则:尽量保证接口的纯洁性,客户端不应该依赖不需要的接口,接口也不要继承一些无关的东西
-
迪米特法则:最少知道原则,一个类对其所依赖的类知道的越少越好
-
里氏替换原则:子类可以扩展父类的功能,但是不能改变父类原有的功能
-
合成复用原则:尽量的使用对象的组合/聚合,不使用继承关系达到代码复用的关系
为什么要学习设计模式
-
写出优雅的代码
-
更好的重构项目
-
经典框架都在用设计模式解决问题
Spring中用到的设计模式
-
工厂模式:BeanFactory
-
装饰器模式:BeanWrapper
-
代理模式:AopProxy
-
单例模式:工厂本身就是一个单例模式—>ApplicationContext
-
委派模式:DispatcherServlet
-
策略模式:HandlerMapping
-
适配器模式:HandlerAdapter
-
模板方法模式:JDBCTemplate
-
观察者模式:ContextLoaderListener
可以看看书:
1.软件架构设计七大原则
2.维基百科 http://en.wikipedia.org/wiki/Design_Patterns#Patterns_by_Type
3.大话设计模式
4.Head First设计模式
5.设计模式-可服用面向对象软件基础
6.Effective Java