一、软件开发设计原则:(七大原则)
- 开闭原则:软件实体对扩展开放、对修改关闭(用抽象构建架构,用实现扩展细节)
- 单一职责原则:类或接口的职责要单一、只做一件事,保证功能的单一性、纯洁性
- 依赖倒置原则:要针对抽象层编程,而不要针对具体实现类编程
- 接口隔离原则:一个接口不要包含过多的职责,应合理划分,跟单一职责原则相辅相成
- 迪米特法则:即最少知道原则,一个对象对其他对象的引用越少越好,比如控制好public、private修饰符范围
- 里式替换原则:子类可以扩展父类的功能,但不能改变父类原有的功能
- 合成复用原则:尽量使用对象的组合和聚合关系,少使用继承关系达到代码复用的目的
二、使用设计模式和不用设计模式的区别?
- 不用:喝酒唱歌,人生真爽。
- 使用:对酒当歌,人生几何?
三、为什么要学设计模式?
- 写出优雅的代码
- 更好地重构项目
- 经典框架都在用设计模式解决问题
四、21种设计模式
设计模式分为三大类:
- 创建型模式,共5种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
- 结构型模式,共7种:适配器模式、装饰者模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
- 行为型模式,共11种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
五、举例Spring源码中用到的设计模式
- 工厂模式:BeanFactory
- 装饰者模式:BeanWrapper
- 代理模式:AopProxy
- 单例模式:ApplicationContext
- 委派模式:DispatcherServlet
- 策略模式:HandlerMapping
- 适配器模式:HandlerAdapter
- 模板方法模式:JdbcTemplate
- 观察者模式:ContextLoaderListener