设计模式GOF
创建型模式
-单例模式、工厂模式、抽象工厂模式、建造者模式、原型模式
结构型模式
-适配器模式、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式
行为型模式
-模板方式模式、命令模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式、状态模式、策略模式、职责链模式、访问者模式
单例模式
- 核心作用
-保证一个类只有一个实例,并且提供一个访问该实例的全局访问点 - 单例模式的优点
-由于单例模式只生成一个实例,减少了系统性能开销,当一个对象的产生需要比较多的资源时,如读取配置、产生其他依赖对象时,则可以通过在应用启动时直接产生一个单例对象,然后永久驻留内存的方式来解决
-单例模式可以在系统设置全局的访问点,优化环共享资源访问,例如可以设计一个单例类,负责所有数据表的映射处理 - 常见的五种单例模式实现方式
-主要:
1.饿汉式线程安全,调用效率高,但是不能延迟加载
2.懒汉式线程安全,调用效率不高。但是可以延时加载
-其他:
3.双重检测锁式
4.静态内部类式
5.枚举单例
工厂模式
-实现了创建者和调用者的分离
-详细分类:
- 简单工厂模式
- 工厂方法模式
- 抽象工厂模式
面向对象设计的基本原则:
-OCP(开闭原则):一个软件的实体应当对扩展开放,对修改关闭.
-DIP(依赖倒转原则):要针对接口编程,不要针对实现编程.
-Lod(迪米特法则):只与你直接的朋友通信,而避免和陌生人通信
- 核心本质
-实例化对象,用工厂方法代替new操作
-将选择实现类,创建对象统一管理和控制,从而将调用者跟我们的实现类解耦
- 工厂模式
-简单工厂模式
- 用来生产同一等级结构中的任意产品
-工厂方法模式 - 用来生产同一等级结构中的固定产品
-抽象工厂模式 - 用来生产不同产品族的全部产品