开发中的重点-----设计模式

说到设计模式,要先了解设计模式的原则:

  • 总原则--开闭原则:开闭原则就是对外扩展开放,对内修改关闭,这样易于维护和升级,实现热插拔的效果。
  • 单一职责原则:即每一个类都只应该实现单一的职责。
  • 里氏替换原则:即基类可以出现的地方,子类也一定可以出现
  • 依赖倒转原则:这个是开闭原则的基础,在面向接口编程中,依赖于抽象而不依赖于具体,在写代码时用到具体的类时,是与类上级的接口交互,而不是直接与类交互。
  • 接口隔离原则:接口隔离是指每个接口不存在子类用不到却必须实现的方法。
  • 迪米特法则:一个类对自己依赖的类知道的越少越好。
  • 合并复用原则:原则上尽量使用聚合、合并的方式实现,而不是使用继承。

了解了以上设计模式的设计原则,在去理解和学习设计模式就很简单了,在我们开发中设计模式一共23种,这里简单介绍常用的几种:

  1. 工厂模式:通过调用方法进行实例化对象,可解决对象产生过多等问题,例如spring的核心就是工厂模式
  2. 单例模式:一个类在java虚拟机中只有一个对象,并提供一个全局访问点。使对象唯一,防止性能浪费。模式结构分为懒汉式和饿汉式,一般是使用懒汉式,因为懒汉式性能优化,懒汉式在方法里面进行初始化的,下面看代码(有时候面试的时候让手写)
//饿汉式
public
class HSingleton{   pravite static HSingleton hurgry = new HSingletion();   private HSingleton(){}   public static HSingleton getSingletonHurgry(){     return hurgry;   } }

//懒汉式
public class LSingleton{
  private static LSingleton instence = null;
  private LSingleton(){}
  public static LSingleton getInstence(){
    if(instence == null){
    instence = new LSingleton();
    }
    return instence;
  }
}

  3.代理模式:为其他大对象提供一个代理,以控制对当前对象的访问,或者减少太大资源的消耗。例如spring AOP的实现,mybatis中的dao层,可以直接调用接口的方法,接口中的方法就是代理方法。

  4.策略模式:设计一个顶级接口,用不同的算法方法去实现相同的功能,就是策略模式。

  5.模板模式:定义一个流程,在实现某个模块功能的时候,按照这个流程开发。应用:定义一个抽象父类定义流程,或者常用的方法和常量,子类实现父类,实现具体细节方法。

  6.装饰模式:对一个对象做一些装饰,使对象具备新的功能,而且是动态的。要求装饰对象和被装饰对象实现同一个接口

23种设计模式种以上几种比较常用,有兴趣的可以在网上了解一下其他几种:总结如下

  • 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
  • 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
  • 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

猜你喜欢

转载自www.cnblogs.com/bestxyl/p/9806346.html
今日推荐