写点什么

架构师训练营第三周总结

发布于: 2020 年 06 月 24 日



第三周主要学习了常用的设计模式,如单例模式、工厂模式等。并通过JUNIT测试框架、Spring的源码分析,展开讲解了设计模式的实际运用。



单例模式:



概念:一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模式。



用处:

  1. 处理资源访问冲突。

  2. 表示全局唯一类



如何实现:

  1. 饿汉式:在类加载的时候,instance 静态实例就已经创建并初始化好了,所以,instance 实例的创建过程是线程安全的。


public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
  1. 懒汉式 : 延迟加载实例。


public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}



工厂模式:

  1. 简单工厂(Simple Factory)

    使用场景:

      a. 当每个对象的创建逻辑都比较简单的时候,将多个对象的创建逻辑放到一个工厂类中。

    实现:

      a. if else 创建不同的对象。

      b. 用单例模式 + 简单工厂模式结合来实现。

  2. 工厂方法(Factory Method)

    使用场景:

      a. 当每个对象的创建逻辑都比较复杂的时候,为了避免设计一个过于庞大的简单工厂类时,将创建逻辑拆分得更细,每个对象的创建逻辑独立到各自的工厂类中。

      b. 避免很多 if-else 分支逻辑时。

    实现:

      a. 定义相应的接口,每个工厂定义一个实现类。这种方式使用会有多个if else 让使用更加复杂。

      b. 创建工厂的工厂来,此方案可以解决上面的问题。

  3. 抽象工厂(Abstract Factory)- 不常用

    使用场景:

      a. 有多种分类方式,如方式要用一套工厂方法,方式二要用一套工厂方法,详见原文例子。

    实现:

      让一个工厂负责创建多个不同类型的对象,而不是只创建一种 parser 对象。



用户头像

还未添加个人签名 2019.01.06 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营第三周总结