1 Star 0 Fork 38

八意永琳 / java面试迷你版

forked from papi林 / java面试迷你版 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
设计模式.md 2.31 KB
一键复制 编辑 原始数据 按行查看 历史
papi林 提交于 2020-07-23 19:57 . gengxin

设计模式

SOLID模式

  1. 单一原则:对象单一功能。
  2. 开闭原则:对拓展开放,对修改关闭。
  3. 里氏替换:程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换的。
  4. 接口隔离:多个特定客户端接口要好于一个宽泛用途的接口。
  5. 依赖倒转:代码应当取决于抽象概念,而不是具体实现。

工厂模式:主要功能是帮助我们把对象的实例化部分抽取出来,降低耦合度,增强拓展性。

简单工厂模式:实现对象的创建和对象使用分离,将对象的创建交给专门的工厂类负责,缺点在于工厂类不够灵活,增加新的具体产品需要修改工厂类的判断逻辑,多的时候就非常复杂。例如传进来一个字符串,case判断得到一个所需的指定对象。

工厂方法模式:通过定义一个抽象的核心工厂类,并定义创建产品对象的接口。创建具体产品实例工作延迟到其工厂子类去完成。增加一个产品的时候,只需要增加一个具体实现的工厂子类。简单来说,客户端需要什么样的产品可以调子类方法创建对应的产品。

抽象工厂模式:处理一个工厂产生不同的产品,定义一个抽象类包括不同产品的创建。

spring中使用的设计模式:

  1. 单例模式:默认创建的bean就是单例的。
  2. 工厂模式:BeanFactory和ApplicationContext创建工厂创建bean。
  3. 代理模式:在Aop实现中用到了JDK的动态代理
  4. 模版方法模式:JdbcTemplate、redisTemplate这些减少创建和销毁的重复步骤。
  5. 策略模式:JDK动态代理和CGLIB代理按策略选择。
  6. 观察者模式:事件监听。

工厂模式,单例模式、适配器模式、观察者模式、模板方法模式、代理模式、策略模式、外观模式、建造者模式、原型模式、修饰模式、状态模式、备忘录模式、职责链模式、迭代器模式、组合模式、桥接模式、命令模式、中介者模式、享元模式、解释器模式、访问者模式。

单例模式:懒汉式、饿汉式、枚举。懒汉和饿汉模式会被反射和序列化破坏唯一性,但枚举不会。

public enum Test {
    INSTANCE;
}
Java
1
https://gitee.com/yagokoro_eirin/javaLearn.git
git@gitee.com:yagokoro_eirin/javaLearn.git
yagokoro_eirin
javaLearn
java面试迷你版
master

搜索帮助