1.设计模式是什么?:
由前人在实际工作中反复使用,总结得出的经验, 形成了一些模式。
2.6大设计原则
1.单一职责原则
2.里氏替代原则:(子类可以拓展父类, 但是不能改变父类原则)
3.依赖倒置原则(面向接口编程)
4.接口隔离原则(接口中方法尽量少)
5.迪米特法则:对其他对象保持最少了解
6.开闭原则:对拓展开放, 对修改关闭。
3.具体设计模式介绍(一共23种)
创建型模式: 工厂模式
结构型模式: 代理模式,适配器模式,装饰器模式
行为型模式:关注系统中对象间相互切换, 观察者模式, 责任链模式, 模板方法
4.单例模式:
核心是要保证一个类只有一个对象在当前容器中, 而且需要提供一个实例全局的访问方法。
实现单例的方式:
饿汉式: 创建一个对象的时候, 加载就创建, 构造方法私有化, 提供静态的获取变量的方法。
懒汉式: 在全局静态方法中做判断, 需要用到的时候才会创建。外部if判断是否为空 , 加锁。
里面再次判断一次是否为空。
简单工厂模式:
简单工厂模式又称为静态工厂模式,
简单工厂模式实现简单, 但是对于新产品拓展无能为力, 不修改代码没法拓展。
工厂方法模式:
为了避免简单工厂模式缺点, 不完全满足ocp, 工厂方法模式和简单工厂模式最大的不同在于,
简单工厂模式只有一个,而工厂方法模式有一组实现了相同接口的工厂类。
代理模式:
代理模式作用, 增强我们目标对象功能, 代目标对象去处理一些业务处理逻辑。
2.实现方式:
静态代理
jdk代理模式:目标对象必须实现相关接口,
cglib代理:目标对象不管有没有实现相关接口, 都可以使用, 用到继承类关系。
模板模式:
父类中定义了模板结构, 去子类中具体实现。
观察者模式:
本质就是对象之间的一种一对多的依赖关系,
当其中某个对象状态发生变化的时候, 其他依赖的相关对象都可以获得通知并且做出更新。
监听器事件
装饰器模式:
本质是能够动态的给一个对象增加一些额外的功能, 同时不会改变其结构。
mybatis中缓存模块。
策略模式:
定义一系列的算法, 将每个算法都封装起来,使其相互之间可以替换。
适配器模式:
是将一个类的接口变成客户端所期望的另一个接口, 从而使原本因为接口不匹配
而无法一起工作的两个类能够一起工作, 不会破坏原有的一些信息。
myBatis中的日志框架。