00.浅谈设计模式

回顾软件七大设计原则

  • 开闭原则:扩展开放,修改关闭。例如:版本更新时,尽可能不修改源代码,但是可以增加新功能。
  • 单一职责原则:约定一个类、接口、方法只做一件事,保证接口、类、方法的单一性和纯洁性。
  • 依赖倒置原则:通过一个抽象类或接口,使得各个类或模块互相不影响,实现松耦合。
  • 接口隔离原则:和单一职责很像,尽量保证接口的纯洁性,客户端不应该依赖不需要的接口。继承接口的时候也不要去继承与自身无关的接口。
  • 迪米特法则(最少知道原则):一个类对其所依赖的类,知道的越少越好,主要体现在对访问修饰符的选择,选择合适的修饰符,不该让子类知道的就设置为private,该让知道的就设置为public。
  • 里式替换原则:子类可以扩展父类的功能,但是不能改变父类原有的功能。
  • 合成复用原则:尽量使用对象的组合、聚合,而不使用继承关系达到代码复用的目的。代理模式、包装器模式就是其展示。

为什么要学习设计模式

  • 写出优雅的代码
  • 更好的重构项目
  • 经典的框架都在用设计模式解决问题

        简单的理解,设计并不是必要的,像装修房子一样,如果我们可以完全不考虑水电安装以及家具的摆放,例如卫生间不安装水管;衣柜放厨房,这样房子也是可以居住的,那为什么要有设计呢?因为我们可以通过设计,来达到房子的最高舒适程度。Java设计模式,同样也是为了达到这样一个效果,使java代码变得更加简洁与灵活,通常我们在判断一个一段代码的好与坏都会用到一个名词——“高内聚,低耦合”,即每个模块分工明确,模块与模块之间的关联比较开放,即“模块内部关系紧密,一个模块只做一件事;模块外部依赖灵活,作为一个有追求的开发者,我想他应该是没有理由去拒绝设计模式的。

Java设计模式的分类

  • 接口型模式:适配器模式、外观模式、合成模式、桥接模式
  • 职责型模式:单例模式、观察者模式、调停模式、代理模式、职责链模式、享元模式
  • 构造型模式:构建者模式、工厂方法模式、抽象工厂模式、原型模式、备忘录模式
  • 操作型模式:模板方法模式、状态模式、策略模式、命令模式、解释器模式
  • 扩展型模式:装饰器模式、迭代器模式、访问者模式

Spring中用到的设计模式

  • 工厂模式 BeanFactory
  • 装饰器模式 BeanWrapper
  • 代理模式 AopProxy
  • 单例模式 ApplicationContext
  • 委派模式 DispatcherServlet
  • 策略模式 HanderMapping
  • 适配器模式 HanderAdpater
  • 模板方法模式 JdbcTemplate
  • 观察者模式 ContextLoaderListener
  • 推荐书籍:《大话设计模式》、《Head First设计模式》、《Effective Java》、《设计模式-可复用面向对象软件的基础》

学习脉络

由Spring框架入手,讲解其主要的组成部分,及用到的主要的设计模式

  • Spring IOC:包含了工厂、单例、装饰器设计模式
  • Spring AOP:包含了代理、观察者设计模式
  • Spring MVC:包含了委派、适配器设计模式
  • Spring JDBC:包含了模板方法设计模式

从工厂模式入手,工厂模式本身也是单例模式,所以一般设计模式都会关联起来学习

你可能感兴趣的:(#,设计模式,设计模式)