设计模式是对软件设计中普遍存在的各种问题,提出解决方案
设计模式包含了面向对象的精髓,懂了设计模式,你就懂了面向对象分析和设计的精要。
设计模式的七大原则
1.单一职责原则
2.接口隔离原则
3.依赖倒置原则
4.里氏替换原则
5.开闭原则ocp
6.迪米特法则
7.合成复用原则
总体来说设计模式分为三大类:
创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
总共二十三种设计模式
UML建模
单例模式
八种方式
推荐使用6,7,8.饿汉式也可以
1.饿汉式(静态常量)
优点,这种写法比较简单,在类加载的时候完成实例化,避免了线程同步问题
缺点,如果一直没有使用这个实例,会造成内存浪费
2.饿汉式(静态代码块)
将类实例化过程放在静态代码块中,和上面一样
3.懒汉式(线程不安全)
多线程下进入null判断产生多实例,实际开发不使用
4.懒汉式(线程安全,同步方法)
在下面方法加入synchonized锁
效率低
5.懒汉式(线程安全,同步代码块)
但是没有解决线程安全,进入null判断还是会产生多实例,实际开发不使用。
6.双重检查(推荐使用)
解决线程安全,效率保证,推荐使用
7.静态内部类(推荐使用)
类加载,静态内部类不会加载
避免线程不安全,利用静态内部类特点实现延迟加载,效率高,推荐使用。
8.枚举(推荐使用)
避免多线程同步问题,还能防止反序列化重新创建新的对象。
单例模式在JDK中使用
Runtime类就是经典的单例模式,饿汉式
单例模式保证了系统内存中该类只存在一个对象,节省了系统资源,对于一些需要频繁创建销毁的对象,使用单例模式可以提高系统性能。
数据源,session工厂等可以使用单例模式