1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成
静态方法)
1.2
抽象工厂模式 (将工厂由类变为
接口,将类中的方法变为类)
本质:通过接口降低耦合性,用一个专门的东西来管理具体实现的方法.
2
单例模式
单例对象(Singleton)是一种常用的
设计模式。在Java应用中,单例对象能保证在一个
JVM
中,该对象只有一个实例存在。这样的模式有几个好处:
2.1、某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销。
2.2、省去了new
caozuofu.html" target="_blank">操作符,降低了系统
内存的使用频率,减轻GC压力。
2.3、有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统
完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团),所以只有使用单
例模式,才能保证核心交易服务器独立控制整个流程。
2.1.1在Java指令中
创建对象和赋值操作是分开进行的
2.1.2也就是说
instance = new Singleton(),语句是分两步执行的。
2.1.3.JVM并不保证上面两个操作的先后顺序
2.1.4.因此,如果有多
线程,有可能发生下列情况,a线程执行instance = new Singleton(),
但还 没有初始化就离开了线程.b线程跟着就进去程序,因为instance不是null,就不会执行
任何 东西,最后要使用instance这个对象的时候,分配了内存空间,但是没有初始化,就会报
错
2.1.5.解决方案:实际情况是,单例模式使用内部类来维护单例的实现
2.1.6.方案原因: JVM内部的机制能够保证当一个类被加载的时候,这个类的加载过程是线程
互斥的。所以用内部类保证了对象一定会初始化
3.建造这模式
工厂模式关注的是创建单个产品,而建造者模式则关注创建符合对象,多个部分。
4.原型模式
该模式的思想就是将一个对象作为原型,对其进行复制、克隆,产生一个和原对象类似的新对
象。
5.适配器模式
一个a接口的实现类,要用到a接口中没有,而b类中有的方法
解决方案: c类继承b类(可以用到b类中的方法),实现a接口(可以用到a接口中的方法)
c extends b,implements a
这样a接口的实现类就具有了b类的功能。